﻿2026-06-19T05:28:32.2531825Z ##[group]Run ./traceable-reqs check --json
2026-06-19T05:28:32.2532188Z [36;1m./traceable-reqs check --json[0m
2026-06-19T05:28:32.2544657Z shell: /usr/bin/bash -e {0}
2026-06-19T05:28:32.2544905Z ##[endgroup]
2026-06-19T05:28:32.3147695Z {
2026-06-19T05:28:32.3148276Z   "schemaVersion": 1,
2026-06-19T05:28:32.3148726Z   "summary": {
2026-06-19T05:28:32.3149262Z     "requirementCount": 256,
2026-06-19T05:28:32.3149731Z     "completeCount": 256,
2026-06-19T05:28:32.3150197Z     "incompleteCount": 0,
2026-06-19T05:28:32.3150642Z     "findingCount": 0
2026-06-19T05:28:32.3151041Z   },
2026-06-19T05:28:32.3151422Z   "requirements": [
2026-06-19T05:28:32.3151872Z     {
2026-06-19T05:28:32.3152312Z       "id": "REQ-API-1",
2026-06-19T05:28:32.3153146Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-19T05:28:32.3154051Z       "requiredStages": [
2026-06-19T05:28:32.3154706Z         "impl",
2026-06-19T05:28:32.3155302Z         "unit",
2026-06-19T05:28:32.3155851Z         "int"
2026-06-19T05:28:32.3156585Z       ],
2026-06-19T05:28:32.3157098Z       "stages": {
2026-06-19T05:28:32.3157630Z         "doc": {
2026-06-19T05:28:32.3174399Z           "complete": false,
2026-06-19T05:28:32.3174896Z           "evidence": []
2026-06-19T05:28:32.3175316Z         },
2026-06-19T05:28:32.3175675Z         "impl": {
2026-06-19T05:28:32.3176074Z           "complete": true,
2026-06-19T05:28:32.3176508Z           "evidence": [
2026-06-19T05:28:32.3176904Z             {
2026-06-19T05:28:32.3177323Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.3177831Z               "line": 15
2026-06-19T05:28:32.3178251Z             }
2026-06-19T05:28:32.3178613Z           ]
2026-06-19T05:28:32.3179070Z         },
2026-06-19T05:28:32.3179433Z         "int": {
2026-06-19T05:28:32.3179843Z           "complete": true,
2026-06-19T05:28:32.3180281Z           "evidence": [
2026-06-19T05:28:32.3180678Z             {
2026-06-19T05:28:32.3181111Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:28:32.3181650Z               "line": 13
2026-06-19T05:28:32.3182060Z             }
2026-06-19T05:28:32.3182450Z           ]
2026-06-19T05:28:32.3182803Z         },
2026-06-19T05:28:32.3183107Z         "unit": {
2026-06-19T05:28:32.3183443Z           "complete": true,
2026-06-19T05:28:32.3183805Z           "evidence": [
2026-06-19T05:28:32.3184125Z             {
2026-06-19T05:28:32.3184487Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.3184922Z               "line": 717
2026-06-19T05:28:32.3185265Z             },
2026-06-19T05:28:32.3185575Z             {
2026-06-19T05:28:32.3185927Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.3186400Z               "line": 804
2026-06-19T05:28:32.3186758Z             }
2026-06-19T05:28:32.3187078Z           ]
2026-06-19T05:28:32.3187379Z         }
2026-06-19T05:28:32.3187698Z       }
2026-06-19T05:28:32.3188013Z     },
2026-06-19T05:28:32.3188308Z     {
2026-06-19T05:28:32.3188612Z       "id": "REQ-API-2",
2026-06-19T05:28:32.3189243Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-19T05:28:32.3189840Z       "requiredStages": [
2026-06-19T05:28:32.3190198Z         "impl",
2026-06-19T05:28:32.3190531Z         "unit",
2026-06-19T05:28:32.3190851Z         "int"
2026-06-19T05:28:32.3191156Z       ],
2026-06-19T05:28:32.3191465Z       "stages": {
2026-06-19T05:28:32.3191775Z         "doc": {
2026-06-19T05:28:32.3192118Z           "complete": false,
2026-06-19T05:28:32.3192476Z           "evidence": []
2026-06-19T05:28:32.3192810Z         },
2026-06-19T05:28:32.3193100Z         "impl": {
2026-06-19T05:28:32.3193938Z           "complete": true,
2026-06-19T05:28:32.3194304Z           "evidence": [
2026-06-19T05:28:32.3194632Z             {
2026-06-19T05:28:32.3195004Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:28:32.3195434Z               "line": 17
2026-06-19T05:28:32.3195769Z             },
2026-06-19T05:28:32.3196074Z             {
2026-06-19T05:28:32.3196691Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.3197109Z               "line": 20
2026-06-19T05:28:32.3197438Z             },
2026-06-19T05:28:32.3197738Z             {
2026-06-19T05:28:32.3198086Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.3198520Z               "line": 142
2026-06-19T05:28:32.3198859Z             },
2026-06-19T05:28:32.3199225Z             {
2026-06-19T05:28:32.3199585Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3200015Z               "line": 24
2026-06-19T05:28:32.3200343Z             },
2026-06-19T05:28:32.3200653Z             {
2026-06-19T05:28:32.3201001Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3201430Z               "line": 41
2026-06-19T05:28:32.3201750Z             },
2026-06-19T05:28:32.3202063Z             {
2026-06-19T05:28:32.3202430Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3202755Z               "line": 209
2026-06-19T05:28:32.3203002Z             },
2026-06-19T05:28:32.3203279Z             {
2026-06-19T05:28:32.3203655Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3204091Z               "line": 251
2026-06-19T05:28:32.3204432Z             },
2026-06-19T05:28:32.3204735Z             {
2026-06-19T05:28:32.3205084Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3205536Z               "line": 330
2026-06-19T05:28:32.3205855Z             },
2026-06-19T05:28:32.3206161Z             {
2026-06-19T05:28:32.3206518Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3206963Z               "line": 393
2026-06-19T05:28:32.3207318Z             },
2026-06-19T05:28:32.3207617Z             {
2026-06-19T05:28:32.3207979Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3208407Z               "line": 432
2026-06-19T05:28:32.3208751Z             },
2026-06-19T05:28:32.3209138Z             {
2026-06-19T05:28:32.3209501Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.3209922Z               "line": 17
2026-06-19T05:28:32.3210260Z             },
2026-06-19T05:28:32.3210565Z             {
2026-06-19T05:28:32.3210909Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.3211342Z               "line": 30
2026-06-19T05:28:32.3211670Z             },
2026-06-19T05:28:32.3211985Z             {
2026-06-19T05:28:32.3212267Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.3212543Z               "line": 63
2026-06-19T05:28:32.3212772Z             },
2026-06-19T05:28:32.3212976Z             {
2026-06-19T05:28:32.3213219Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.3213506Z               "line": 77
2026-06-19T05:28:32.3213735Z             }
2026-06-19T05:28:32.3213930Z           ]
2026-06-19T05:28:32.3214121Z         },
2026-06-19T05:28:32.3214322Z         "int": {
2026-06-19T05:28:32.3214535Z           "complete": true,
2026-06-19T05:28:32.3214778Z           "evidence": [
2026-06-19T05:28:32.3215011Z             {
2026-06-19T05:28:32.3215257Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:28:32.3215538Z               "line": 14
2026-06-19T05:28:32.3215767Z             },
2026-06-19T05:28:32.3215968Z             {
2026-06-19T05:28:32.3216212Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:28:32.3216506Z               "line": 187
2026-06-19T05:28:32.3216731Z             }
2026-06-19T05:28:32.3216936Z           ]
2026-06-19T05:28:32.3217136Z         },
2026-06-19T05:28:32.3217335Z         "unit": {
2026-06-19T05:28:32.3217750Z           "complete": true,
2026-06-19T05:28:32.3217991Z           "evidence": [
2026-06-19T05:28:32.3218197Z             {
2026-06-19T05:28:32.3218458Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:28:32.3218754Z               "line": 82
2026-06-19T05:28:32.3219035Z             },
2026-06-19T05:28:32.3219245Z             {
2026-06-19T05:28:32.3219650Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.3219945Z               "line": 279
2026-06-19T05:28:32.3220174Z             },
2026-06-19T05:28:32.3220388Z             {
2026-06-19T05:28:32.3220642Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3220953Z               "line": 705
2026-06-19T05:28:32.3221177Z             },
2026-06-19T05:28:32.3221383Z             {
2026-06-19T05:28:32.3221640Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3221921Z               "line": 716
2026-06-19T05:28:32.3222141Z             },
2026-06-19T05:28:32.3222356Z             {
2026-06-19T05:28:32.3222609Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3222909Z               "line": 869
2026-06-19T05:28:32.3223141Z             },
2026-06-19T05:28:32.3223356Z             {
2026-06-19T05:28:32.3223628Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3223947Z               "line": 915
2026-06-19T05:28:32.3224309Z             },
2026-06-19T05:28:32.3224619Z             {
2026-06-19T05:28:32.3224995Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.3225428Z               "line": 143
2026-06-19T05:28:32.3225764Z             },
2026-06-19T05:28:32.3226069Z             {
2026-06-19T05:28:32.3226442Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.3226890Z               "line": 187
2026-06-19T05:28:32.3227238Z             }
2026-06-19T05:28:32.3227529Z           ]
2026-06-19T05:28:32.3227825Z         }
2026-06-19T05:28:32.3228112Z       }
2026-06-19T05:28:32.3228405Z     },
2026-06-19T05:28:32.3228694Z     {
2026-06-19T05:28:32.3229081Z       "id": "REQ-API-3",
2026-06-19T05:28:32.3229528Z       "title": "commune/signoff are file-drops, not commands",
2026-06-19T05:28:32.3230006Z       "requiredStages": [
2026-06-19T05:28:32.3230359Z         "impl",
2026-06-19T05:28:32.3230669Z         "unit",
2026-06-19T05:28:32.3230977Z         "int"
2026-06-19T05:28:32.3231289Z       ],
2026-06-19T05:28:32.3231590Z       "stages": {
2026-06-19T05:28:32.3231924Z         "doc": {
2026-06-19T05:28:32.3232258Z           "complete": false,
2026-06-19T05:28:32.3232639Z           "evidence": []
2026-06-19T05:28:32.3232972Z         },
2026-06-19T05:28:32.3233287Z         "impl": {
2026-06-19T05:28:32.3233625Z           "complete": true,
2026-06-19T05:28:32.3233972Z           "evidence": [
2026-06-19T05:28:32.3234301Z             {
2026-06-19T05:28:32.3234673Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:28:32.3235113Z               "line": 27
2026-06-19T05:28:32.3235457Z             },
2026-06-19T05:28:32.3235758Z             {
2026-06-19T05:28:32.3236140Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3236577Z               "line": 562
2026-06-19T05:28:32.3236916Z             }
2026-06-19T05:28:32.3237207Z           ]
2026-06-19T05:28:32.3237507Z         },
2026-06-19T05:28:32.3237803Z         "int": {
2026-06-19T05:28:32.3238151Z           "complete": true,
2026-06-19T05:28:32.3238504Z           "evidence": [
2026-06-19T05:28:32.3238832Z             {
2026-06-19T05:28:32.3239292Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:28:32.3239731Z               "line": 261
2026-06-19T05:28:32.3240065Z             }
2026-06-19T05:28:32.3240375Z           ]
2026-06-19T05:28:32.3240675Z         },
2026-06-19T05:28:32.3240980Z         "unit": {
2026-06-19T05:28:32.3241304Z           "complete": true,
2026-06-19T05:28:32.3241659Z           "evidence": [
2026-06-19T05:28:32.3242002Z             {
2026-06-19T05:28:32.3242564Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:28:32.3242984Z               "line": 280
2026-06-19T05:28:32.3243308Z             },
2026-06-19T05:28:32.3243614Z             {
2026-06-19T05:28:32.3243991Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3244429Z               "line": 944
2026-06-19T05:28:32.3244753Z             }
2026-06-19T05:28:32.3245181Z           ]
2026-06-19T05:28:32.3245477Z         }
2026-06-19T05:28:32.3245772Z       }
2026-06-19T05:28:32.3246050Z     },
2026-06-19T05:28:32.3246346Z     {
2026-06-19T05:28:32.3246644Z       "id": "REQ-API-4",
2026-06-19T05:28:32.3249572Z       "title": "api resolves the adapter manifest (+ profile + install dir) from `--adapter name:profile` via the registry when `--manifest` is omitted; `--manifest` becomes an optional OVERRIDE (unregistered / local-dev manifests). Removes the require-both-flags redundancy — a registered adapter's live bringup / digest / capability needs only `--adapter` — and yields the precise install dir (the record's source_dir) rather than the --manifest parent, closing the copy-mode psyche-binary edge (v0.8.0)",
2026-06-19T05:28:32.3251554Z       "requiredStages": [
2026-06-19T05:28:32.3251803Z         "doc",
2026-06-19T05:28:32.3252025Z         "impl",
2026-06-19T05:28:32.3252243Z         "unit"
2026-06-19T05:28:32.3252529Z       ],
2026-06-19T05:28:32.3252820Z       "stages": {
2026-06-19T05:28:32.3253068Z         "doc": {
2026-06-19T05:28:32.3253354Z           "complete": true,
2026-06-19T05:28:32.3253731Z           "evidence": [
2026-06-19T05:28:32.3254046Z             {
2026-06-19T05:28:32.3254384Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.3254783Z               "line": 149
2026-06-19T05:28:32.3255126Z             }
2026-06-19T05:28:32.3255436Z           ]
2026-06-19T05:28:32.3255737Z         },
2026-06-19T05:28:32.3284491Z         "impl": {
2026-06-19T05:28:32.3299411Z           "complete": true,
2026-06-19T05:28:32.3299733Z           "evidence": [
2026-06-19T05:28:32.3300010Z             {
2026-06-19T05:28:32.3300267Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.3300572Z               "line": 484
2026-06-19T05:28:32.3300811Z             }
2026-06-19T05:28:32.3301017Z           ]
2026-06-19T05:28:32.3301216Z         },
2026-06-19T05:28:32.3301417Z         "int": {
2026-06-19T05:28:32.3301637Z           "complete": false,
2026-06-19T05:28:32.3301903Z           "evidence": []
2026-06-19T05:28:32.3302117Z         },
2026-06-19T05:28:32.3302317Z         "unit": {
2026-06-19T05:28:32.3302533Z           "complete": true,
2026-06-19T05:28:32.3302777Z           "evidence": [
2026-06-19T05:28:32.3302992Z             {
2026-06-19T05:28:32.3303245Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.3303535Z               "line": 657
2026-06-19T05:28:32.3303764Z             },
2026-06-19T05:28:32.3303965Z             {
2026-06-19T05:28:32.3304204Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.3304484Z               "line": 681
2026-06-19T05:28:32.3304721Z             },
2026-06-19T05:28:32.3304917Z             {
2026-06-19T05:28:32.3305167Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.3305448Z               "line": 705
2026-06-19T05:28:32.3305668Z             }
2026-06-19T05:28:32.3305874Z           ]
2026-06-19T05:28:32.3306073Z         }
2026-06-19T05:28:32.3306288Z       }
2026-06-19T05:28:32.3306489Z     },
2026-06-19T05:28:32.3306688Z     {
2026-06-19T05:28:32.3306912Z       "id": "REQ-ARCH-1",
2026-06-19T05:28:32.3307203Z       "title": "Many small acyclically-layered crates",
2026-06-19T05:28:32.3307504Z       "requiredStages": [
2026-06-19T05:28:32.3307736Z         "impl"
2026-06-19T05:28:32.3307941Z       ],
2026-06-19T05:28:32.3308142Z       "stages": {
2026-06-19T05:28:32.3308356Z         "doc": {
2026-06-19T05:28:32.3308589Z           "complete": false,
2026-06-19T05:28:32.3308833Z           "evidence": []
2026-06-19T05:28:32.3309162Z         },
2026-06-19T05:28:32.3309591Z         "impl": {
2026-06-19T05:28:32.3309820Z           "complete": true,
2026-06-19T05:28:32.3310057Z           "evidence": [
2026-06-19T05:28:32.3310274Z             {
2026-06-19T05:28:32.3310517Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-19T05:28:32.3310803Z               "line": 18
2026-06-19T05:28:32.3311028Z             },
2026-06-19T05:28:32.3311362Z             {
2026-06-19T05:28:32.3311620Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-19T05:28:32.3311921Z               "line": 12
2026-06-19T05:28:32.3312153Z             },
2026-06-19T05:28:32.3312363Z             {
2026-06-19T05:28:32.3312607Z               "path": "crates/spt-store/src/lib.rs",
2026-06-19T05:28:32.3312886Z               "line": 12
2026-06-19T05:28:32.3313112Z             }
2026-06-19T05:28:32.3313309Z           ]
2026-06-19T05:28:32.3313514Z         },
2026-06-19T05:28:32.3313718Z         "int": {
2026-06-19T05:28:32.3313933Z           "complete": false,
2026-06-19T05:28:32.3314186Z           "evidence": []
2026-06-19T05:28:32.3314410Z         },
2026-06-19T05:28:32.3314609Z         "unit": {
2026-06-19T05:28:32.3314845Z           "complete": false,
2026-06-19T05:28:32.3315107Z           "evidence": []
2026-06-19T05:28:32.3315338Z         }
2026-06-19T05:28:32.3315533Z       }
2026-06-19T05:28:32.3315732Z     },
2026-06-19T05:28:32.3315941Z     {
2026-06-19T05:28:32.3316166Z       "id": "REQ-ARCH-2",
2026-06-19T05:28:32.3316505Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-19T05:28:32.3316867Z       "requiredStages": [
2026-06-19T05:28:32.3317115Z         "impl"
2026-06-19T05:28:32.3317321Z       ],
2026-06-19T05:28:32.3317525Z       "stages": {
2026-06-19T05:28:32.3317731Z         "doc": {
2026-06-19T05:28:32.3317965Z           "complete": false,
2026-06-19T05:28:32.3318220Z           "evidence": []
2026-06-19T05:28:32.3318440Z         },
2026-06-19T05:28:32.3318640Z         "impl": {
2026-06-19T05:28:32.3318864Z           "complete": true,
2026-06-19T05:28:32.3319217Z           "evidence": [
2026-06-19T05:28:32.3319440Z             {
2026-06-19T05:28:32.3319708Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-19T05:28:32.3319994Z               "line": 18
2026-06-19T05:28:32.3320219Z             }
2026-06-19T05:28:32.3320418Z           ]
2026-06-19T05:28:32.3320621Z         },
2026-06-19T05:28:32.3320815Z         "int": {
2026-06-19T05:28:32.3321044Z           "complete": false,
2026-06-19T05:28:32.3321298Z           "evidence": []
2026-06-19T05:28:32.3321527Z         },
2026-06-19T05:28:32.3321731Z         "unit": {
2026-06-19T05:28:32.3321946Z           "complete": false,
2026-06-19T05:28:32.3322194Z           "evidence": []
2026-06-19T05:28:32.3322418Z         }
2026-06-19T05:28:32.3322613Z       }
2026-06-19T05:28:32.3322801Z     },
2026-06-19T05:28:32.3323004Z     {
2026-06-19T05:28:32.3323218Z       "id": "REQ-ARCH-3",
2026-06-19T05:28:32.3323573Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-19T05:28:32.3323968Z       "requiredStages": [
2026-06-19T05:28:32.3324207Z         "impl",
2026-06-19T05:28:32.3324417Z         "unit"
2026-06-19T05:28:32.3324621Z       ],
2026-06-19T05:28:32.3324827Z       "stages": {
2026-06-19T05:28:32.3325047Z         "doc": {
2026-06-19T05:28:32.3325285Z           "complete": false,
2026-06-19T05:28:32.3325538Z           "evidence": []
2026-06-19T05:28:32.3325771Z         },
2026-06-19T05:28:32.3325975Z         "impl": {
2026-06-19T05:28:32.3326211Z           "complete": true,
2026-06-19T05:28:32.3326464Z           "evidence": [
2026-06-19T05:28:32.3326694Z             {
2026-06-19T05:28:32.3326951Z               "path": "crates/spt-proto/src/version.rs",
2026-06-19T05:28:32.3327256Z               "line": 34
2026-06-19T05:28:32.3327489Z             },
2026-06-19T05:28:32.3327703Z             {
2026-06-19T05:28:32.3327957Z               "path": "crates/spt-proto/src/version.rs",
2026-06-19T05:28:32.3328244Z               "line": 41
2026-06-19T05:28:32.3328457Z             }
2026-06-19T05:28:32.3328790Z           ]
2026-06-19T05:28:32.3329095Z         },
2026-06-19T05:28:32.3329301Z         "int": {
2026-06-19T05:28:32.3329530Z           "complete": false,
2026-06-19T05:28:32.3329772Z           "evidence": []
2026-06-19T05:28:32.3329991Z         },
2026-06-19T05:28:32.3330197Z         "unit": {
2026-06-19T05:28:32.3330426Z           "complete": true,
2026-06-19T05:28:32.3330774Z           "evidence": [
2026-06-19T05:28:32.3330997Z             {
2026-06-19T05:28:32.3331247Z               "path": "crates/spt-proto/src/version.rs",
2026-06-19T05:28:32.3331539Z               "line": 51
2026-06-19T05:28:32.3331777Z             },
2026-06-19T05:28:32.3331985Z             {
2026-06-19T05:28:32.3332238Z               "path": "crates/spt-proto/src/version.rs",
2026-06-19T05:28:32.3332520Z               "line": 71
2026-06-19T05:28:32.3332740Z             },
2026-06-19T05:28:32.3332949Z             {
2026-06-19T05:28:32.3333197Z               "path": "crates/spt-proto/src/version.rs",
2026-06-19T05:28:32.3333492Z               "line": 83
2026-06-19T05:28:32.3333713Z             }
2026-06-19T05:28:32.3333925Z           ]
2026-06-19T05:28:32.3334123Z         }
2026-06-19T05:28:32.3334310Z       }
2026-06-19T05:28:32.3334510Z     },
2026-06-19T05:28:32.3334706Z     {
2026-06-19T05:28:32.3334920Z       "id": "REQ-ARCH-4",
2026-06-19T05:28:32.3335259Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-19T05:28:32.3335617Z       "requiredStages": [
2026-06-19T05:28:32.3335855Z         "impl",
2026-06-19T05:28:32.3336078Z         "unit"
2026-06-19T05:28:32.3336294Z       ],
2026-06-19T05:28:32.3336497Z       "stages": {
2026-06-19T05:28:32.3336714Z         "doc": {
2026-06-19T05:28:32.3336939Z           "complete": false,
2026-06-19T05:28:32.3337192Z           "evidence": []
2026-06-19T05:28:32.3337414Z         },
2026-06-19T05:28:32.3337611Z         "impl": {
2026-06-19T05:28:32.3337831Z           "complete": true,
2026-06-19T05:28:32.3338073Z           "evidence": [
2026-06-19T05:28:32.3338293Z             {
2026-06-19T05:28:32.3338536Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3338823Z               "line": 165
2026-06-19T05:28:32.3339161Z             },
2026-06-19T05:28:32.3339373Z             {
2026-06-19T05:28:32.3339621Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3339917Z               "line": 188
2026-06-19T05:28:32.3340142Z             },
2026-06-19T05:28:32.3340346Z             {
2026-06-19T05:28:32.3340584Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3340899Z               "line": 208
2026-06-19T05:28:32.3341124Z             },
2026-06-19T05:28:32.3341330Z             {
2026-06-19T05:28:32.3341571Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3341855Z               "line": 223
2026-06-19T05:28:32.3342080Z             },
2026-06-19T05:28:32.3342293Z             {
2026-06-19T05:28:32.3342536Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3342832Z               "line": 273
2026-06-19T05:28:32.3343056Z             }
2026-06-19T05:28:32.3343257Z           ]
2026-06-19T05:28:32.3343456Z         },
2026-06-19T05:28:32.3343644Z         "int": {
2026-06-19T05:28:32.3343873Z           "complete": false,
2026-06-19T05:28:32.3344120Z           "evidence": []
2026-06-19T05:28:32.3344338Z         },
2026-06-19T05:28:32.3344548Z         "unit": {
2026-06-19T05:28:32.3344774Z           "complete": true,
2026-06-19T05:28:32.3345017Z           "evidence": [
2026-06-19T05:28:32.3345232Z             {
2026-06-19T05:28:32.3345480Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3345761Z               "line": 334
2026-06-19T05:28:32.3345985Z             },
2026-06-19T05:28:32.3346182Z             {
2026-06-19T05:28:32.3346425Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3346730Z               "line": 344
2026-06-19T05:28:32.3346948Z             },
2026-06-19T05:28:32.3347279Z             {
2026-06-19T05:28:32.3347518Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3347795Z               "line": 355
2026-06-19T05:28:32.3348018Z             },
2026-06-19T05:28:32.3348218Z             {
2026-06-19T05:28:32.3348462Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3348748Z               "line": 366
2026-06-19T05:28:32.3349172Z             },
2026-06-19T05:28:32.3349373Z             {
2026-06-19T05:28:32.3349616Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3349905Z               "line": 378
2026-06-19T05:28:32.3350120Z             },
2026-06-19T05:28:32.3350325Z             {
2026-06-19T05:28:32.3350558Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3350839Z               "line": 391
2026-06-19T05:28:32.3351064Z             },
2026-06-19T05:28:32.3351261Z             {
2026-06-19T05:28:32.3351502Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3351793Z               "line": 402
2026-06-19T05:28:32.3352017Z             },
2026-06-19T05:28:32.3352217Z             {
2026-06-19T05:28:32.3352457Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3352738Z               "line": 419
2026-06-19T05:28:32.3352968Z             },
2026-06-19T05:28:32.3353174Z             {
2026-06-19T05:28:32.3353411Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.3353692Z               "line": 547
2026-06-19T05:28:32.3353922Z             }
2026-06-19T05:28:32.3354118Z           ]
2026-06-19T05:28:32.3354318Z         }
2026-06-19T05:28:32.3354509Z       }
2026-06-19T05:28:32.3354704Z     },
2026-06-19T05:28:32.3354908Z     {
2026-06-19T05:28:32.3355117Z       "id": "REQ-CLI-1",
2026-06-19T05:28:32.3356517Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-19T05:28:32.3357778Z       "requiredStages": [
2026-06-19T05:28:32.3358025Z         "impl",
2026-06-19T05:28:32.3358249Z         "unit"
2026-06-19T05:28:32.3358454Z       ],
2026-06-19T05:28:32.3358665Z       "stages": {
2026-06-19T05:28:32.3358883Z         "doc": {
2026-06-19T05:28:32.3359222Z           "complete": false,
2026-06-19T05:28:32.3359479Z           "evidence": []
2026-06-19T05:28:32.3359699Z         },
2026-06-19T05:28:32.3359900Z         "impl": {
2026-06-19T05:28:32.3360114Z           "complete": true,
2026-06-19T05:28:32.3360356Z           "evidence": [
2026-06-19T05:28:32.3360580Z             {
2026-06-19T05:28:32.3360818Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3361094Z               "line": 225
2026-06-19T05:28:32.3361320Z             },
2026-06-19T05:28:32.3361534Z             {
2026-06-19T05:28:32.3361777Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3362057Z               "line": 1086
2026-06-19T05:28:32.3362287Z             },
2026-06-19T05:28:32.3362488Z             {
2026-06-19T05:28:32.3362715Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3363003Z               "line": 1613
2026-06-19T05:28:32.3363229Z             },
2026-06-19T05:28:32.3363424Z             {
2026-06-19T05:28:32.3363656Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3363929Z               "line": 3000
2026-06-19T05:28:32.3364158Z             }
2026-06-19T05:28:32.3364363Z           ]
2026-06-19T05:28:32.3364563Z         },
2026-06-19T05:28:32.3364759Z         "int": {
2026-06-19T05:28:32.3364978Z           "complete": false,
2026-06-19T05:28:32.3365230Z           "evidence": []
2026-06-19T05:28:32.3365445Z         },
2026-06-19T05:28:32.3365639Z         "unit": {
2026-06-19T05:28:32.3365856Z           "complete": true,
2026-06-19T05:28:32.3366209Z           "evidence": [
2026-06-19T05:28:32.3366444Z             {
2026-06-19T05:28:32.3366687Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3366973Z               "line": 7804
2026-06-19T05:28:32.3367196Z             }
2026-06-19T05:28:32.3367396Z           ]
2026-06-19T05:28:32.3367593Z         }
2026-06-19T05:28:32.3367787Z       }
2026-06-19T05:28:32.3368082Z     },
2026-06-19T05:28:32.3368287Z     {
2026-06-19T05:28:32.3368494Z       "id": "REQ-CLI-2",
2026-06-19T05:28:32.3369487Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-19T05:28:32.3370354Z       "requiredStages": [
2026-06-19T05:28:32.3370582Z         "impl",
2026-06-19T05:28:32.3370794Z         "unit"
2026-06-19T05:28:32.3370987Z       ],
2026-06-19T05:28:32.3371184Z       "stages": {
2026-06-19T05:28:32.3371393Z         "doc": {
2026-06-19T05:28:32.3371621Z           "complete": false,
2026-06-19T05:28:32.3371865Z           "evidence": []
2026-06-19T05:28:32.3372099Z         },
2026-06-19T05:28:32.3372289Z         "impl": {
2026-06-19T05:28:32.3372513Z           "complete": true,
2026-06-19T05:28:32.3372748Z           "evidence": [
2026-06-19T05:28:32.3372971Z             {
2026-06-19T05:28:32.3373227Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3373521Z               "line": 409
2026-06-19T05:28:32.3373746Z             },
2026-06-19T05:28:32.3373969Z             {
2026-06-19T05:28:32.3374221Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-19T05:28:32.3374517Z               "line": 97
2026-06-19T05:28:32.3374732Z             },
2026-06-19T05:28:32.3374943Z             {
2026-06-19T05:28:32.3375199Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:28:32.3375499Z               "line": 256
2026-06-19T05:28:32.3375733Z             },
2026-06-19T05:28:32.3375935Z             {
2026-06-19T05:28:32.3376170Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3376454Z               "line": 434
2026-06-19T05:28:32.3376679Z             },
2026-06-19T05:28:32.3376889Z             {
2026-06-19T05:28:32.3377122Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3377408Z               "line": 1165
2026-06-19T05:28:32.3386873Z             },
2026-06-19T05:28:32.3387120Z             {
2026-06-19T05:28:32.3387382Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3387677Z               "line": 1851
2026-06-19T05:28:32.3387897Z             },
2026-06-19T05:28:32.3388098Z             {
2026-06-19T05:28:32.3388321Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3388593Z               "line": 1930
2026-06-19T05:28:32.3388808Z             },
2026-06-19T05:28:32.3389137Z             {
2026-06-19T05:28:32.3389374Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3389677Z               "line": 1991
2026-06-19T05:28:32.3389910Z             }
2026-06-19T05:28:32.3390107Z           ]
2026-06-19T05:28:32.3390302Z         },
2026-06-19T05:28:32.3390506Z         "int": {
2026-06-19T05:28:32.3390730Z           "complete": false,
2026-06-19T05:28:32.3390980Z           "evidence": []
2026-06-19T05:28:32.3391203Z         },
2026-06-19T05:28:32.3391422Z         "unit": {
2026-06-19T05:28:32.3391657Z           "complete": true,
2026-06-19T05:28:32.3391900Z           "evidence": [
2026-06-19T05:28:32.3392117Z             {
2026-06-19T05:28:32.3392370Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:28:32.3392662Z               "line": 338
2026-06-19T05:28:32.3392891Z             },
2026-06-19T05:28:32.3393104Z             {
2026-06-19T05:28:32.3393343Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3393633Z               "line": 7959
2026-06-19T05:28:32.3393873Z             }
2026-06-19T05:28:32.3394243Z           ]
2026-06-19T05:28:32.3394438Z         }
2026-06-19T05:28:32.3394632Z       }
2026-06-19T05:28:32.3394818Z     },
2026-06-19T05:28:32.3395003Z     {
2026-06-19T05:28:32.3395214Z       "id": "REQ-CLI-3",
2026-06-19T05:28:32.3396110Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-19T05:28:32.3397102Z       "requiredStages": [
2026-06-19T05:28:32.3397344Z         "impl",
2026-06-19T05:28:32.3397551Z         "unit"
2026-06-19T05:28:32.3397752Z       ],
2026-06-19T05:28:32.3397947Z       "stages": {
2026-06-19T05:28:32.3398147Z         "doc": {
2026-06-19T05:28:32.3398376Z           "complete": false,
2026-06-19T05:28:32.3398620Z           "evidence": []
2026-06-19T05:28:32.3398852Z         },
2026-06-19T05:28:32.3399182Z         "impl": {
2026-06-19T05:28:32.3399415Z           "complete": true,
2026-06-19T05:28:32.3399655Z           "evidence": [
2026-06-19T05:28:32.3399872Z             {
2026-06-19T05:28:32.3400108Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3400390Z               "line": 1080
2026-06-19T05:28:32.3400619Z             }
2026-06-19T05:28:32.3400818Z           ]
2026-06-19T05:28:32.3401015Z         },
2026-06-19T05:28:32.3401220Z         "int": {
2026-06-19T05:28:32.3401444Z           "complete": false,
2026-06-19T05:28:32.3401691Z           "evidence": []
2026-06-19T05:28:32.3401920Z         },
2026-06-19T05:28:32.3402117Z         "unit": {
2026-06-19T05:28:32.3402344Z           "complete": true,
2026-06-19T05:28:32.3402578Z           "evidence": [
2026-06-19T05:28:32.3402797Z             {
2026-06-19T05:28:32.3403025Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3403311Z               "line": 7769
2026-06-19T05:28:32.3403536Z             }
2026-06-19T05:28:32.3403732Z           ]
2026-06-19T05:28:32.3403940Z         }
2026-06-19T05:28:32.3404132Z       }
2026-06-19T05:28:32.3404322Z     },
2026-06-19T05:28:32.3404512Z     {
2026-06-19T05:28:32.3404729Z       "id": "REQ-CLI-4",
2026-06-19T05:28:32.3407156Z       "title": "User-facing CLI output is human-readable: DIRECT-USER commands (e.g. adapter update/list/use) render friendly prose instead of raw CODE:RESULT markers — \"claude-spt is up to date (0.2.0).\" not \"ADAPTER_UPDATE_UPTODATE:claude-spt: installed 0.2.0, latest 0.2.0\". Strictly bounded to the direct-user surface: the adapter-PARSED bringup tokens (SEEDED/BOUND/READY/NO_SEED on seed/listen, which adapters grep) stay machine-parseable — humanization is additive (a human line beside the marker, or a --porcelain/--quiet split), never a silent rename of a dual-contract marker. The user-facing bringup composition belongs to the adapter (perri); this REQ owns only the direct-user CLI surface. (v0.9.0)",
2026-06-19T05:28:32.3409209Z       "requiredStages": [],
2026-06-19T05:28:32.3409451Z       "stages": {
2026-06-19T05:28:32.3409694Z         "doc": {
2026-06-19T05:28:32.3409919Z           "complete": false,
2026-06-19T05:28:32.3410163Z           "evidence": []
2026-06-19T05:28:32.3410384Z         },
2026-06-19T05:28:32.3410593Z         "impl": {
2026-06-19T05:28:32.3410816Z           "complete": true,
2026-06-19T05:28:32.3411055Z           "evidence": [
2026-06-19T05:28:32.3411283Z             {
2026-06-19T05:28:32.3411503Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3411794Z               "line": 5535
2026-06-19T05:28:32.3412018Z             }
2026-06-19T05:28:32.3412214Z           ]
2026-06-19T05:28:32.3412410Z         },
2026-06-19T05:28:32.3412609Z         "int": {
2026-06-19T05:28:32.3412833Z           "complete": false,
2026-06-19T05:28:32.3413068Z           "evidence": []
2026-06-19T05:28:32.3413294Z         },
2026-06-19T05:28:32.3413495Z         "unit": {
2026-06-19T05:28:32.3413725Z           "complete": false,
2026-06-19T05:28:32.3413963Z           "evidence": []
2026-06-19T05:28:32.3414311Z         }
2026-06-19T05:28:32.3414505Z       }
2026-06-19T05:28:32.3414702Z     },
2026-06-19T05:28:32.3414878Z     {
2026-06-19T05:28:32.3415111Z       "id": "REQ-CLI-HELP-MARKDOWN",
2026-06-19T05:28:32.3418331Z       "title": "`spt --help` (and every subcommand --help) renders the inline Markdown authored in the clap doc-comments as terminal styling, never as literal markers: `**bold**` → ANSI bold, `` `code` `` → ANSI cyan, `[text](url)` → `text`. The markers are STRIPPED either way — a raw `**` or backtick must NEVER reach the user (the operator-reported v0.12.0 defect: help text reads `**ctrl-b**` and stray backticks verbatim). Color/bold escapes are emitted ONLY when the help is going to a real terminal AND color is not suppressed (NO_COLOR unset · CLICOLOR != 0 · CLICOLOR_FORCE forces on); a pipe / redirect / CI / NO_COLOR falls back to strip-only (clean plaintext, zero escapes) so machine-readable help is byte-identical regardless of marker syntax. Pure transform over the clap-rendered help string at the single run()/bare_invocation chokepoint; preserves pre-existing ANSI (CSI sequences passed through untouched), never spans markers across a newline, leaves unmatched/empty markers literal, and does not alter the help layout. (v0.12.1)",
2026-06-19T05:28:32.3421458Z       "requiredStages": [
2026-06-19T05:28:32.3421692Z         "impl",
2026-06-19T05:28:32.3421920Z         "unit"
2026-06-19T05:28:32.3422130Z       ],
2026-06-19T05:28:32.3422326Z       "stages": {
2026-06-19T05:28:32.3422539Z         "doc": {
2026-06-19T05:28:32.3422759Z           "complete": false,
2026-06-19T05:28:32.3423026Z           "evidence": []
2026-06-19T05:28:32.3423247Z         },
2026-06-19T05:28:32.3423451Z         "impl": {
2026-06-19T05:28:32.3423675Z           "complete": true,
2026-06-19T05:28:32.3423908Z           "evidence": [
2026-06-19T05:28:32.3424126Z             {
2026-06-19T05:28:32.3424370Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3424651Z               "line": 8
2026-06-19T05:28:32.3424881Z             },
2026-06-19T05:28:32.3425089Z             {
2026-06-19T05:28:32.3425318Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3425601Z               "line": 35
2026-06-19T05:28:32.3425821Z             },
2026-06-19T05:28:32.3426019Z             {
2026-06-19T05:28:32.3426256Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3426546Z               "line": 66
2026-06-19T05:28:32.3426765Z             },
2026-06-19T05:28:32.3426965Z             {
2026-06-19T05:28:32.3427204Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3427476Z               "line": 186
2026-06-19T05:28:32.3427704Z             }
2026-06-19T05:28:32.3427914Z           ]
2026-06-19T05:28:32.3428111Z         },
2026-06-19T05:28:32.3428315Z         "int": {
2026-06-19T05:28:32.3428543Z           "complete": false,
2026-06-19T05:28:32.3428783Z           "evidence": []
2026-06-19T05:28:32.3429062Z         },
2026-06-19T05:28:32.3429264Z         "unit": {
2026-06-19T05:28:32.3429517Z           "complete": true,
2026-06-19T05:28:32.3429761Z           "evidence": [
2026-06-19T05:28:32.3429966Z             {
2026-06-19T05:28:32.3430204Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3430490Z               "line": 206
2026-06-19T05:28:32.3430714Z             },
2026-06-19T05:28:32.3430925Z             {
2026-06-19T05:28:32.3431168Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3431448Z               "line": 213
2026-06-19T05:28:32.3431666Z             },
2026-06-19T05:28:32.3431865Z             {
2026-06-19T05:28:32.3432108Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3432389Z               "line": 220
2026-06-19T05:28:32.3432619Z             },
2026-06-19T05:28:32.3432819Z             {
2026-06-19T05:28:32.3433066Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3433348Z               "line": 227
2026-06-19T05:28:32.3433577Z             },
2026-06-19T05:28:32.3433911Z             {
2026-06-19T05:28:32.3434151Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3434424Z               "line": 238
2026-06-19T05:28:32.3434644Z             },
2026-06-19T05:28:32.3434864Z             {
2026-06-19T05:28:32.3435103Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3435383Z               "line": 248
2026-06-19T05:28:32.3435722Z             },
2026-06-19T05:28:32.3435931Z             {
2026-06-19T05:28:32.3436170Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3436442Z               "line": 258
2026-06-19T05:28:32.3436674Z             },
2026-06-19T05:28:32.3436891Z             {
2026-06-19T05:28:32.3437126Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3437402Z               "line": 272
2026-06-19T05:28:32.3437630Z             },
2026-06-19T05:28:32.3437830Z             {
2026-06-19T05:28:32.3438074Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3438356Z               "line": 281
2026-06-19T05:28:32.3438579Z             },
2026-06-19T05:28:32.3438789Z             {
2026-06-19T05:28:32.3439084Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3439366Z               "line": 289
2026-06-19T05:28:32.3439584Z             },
2026-06-19T05:28:32.3439791Z             {
2026-06-19T05:28:32.3440026Z               "path": "crates/spt/src/helpfmt.rs",
2026-06-19T05:28:32.3440307Z               "line": 295
2026-06-19T05:28:32.3440527Z             }
2026-06-19T05:28:32.3440730Z           ]
2026-06-19T05:28:32.3440936Z         }
2026-06-19T05:28:32.3441131Z       }
2026-06-19T05:28:32.3441326Z     },
2026-06-19T05:28:32.3441519Z     {
2026-06-19T05:28:32.3441742Z       "id": "REQ-CONSENT-1",
2026-06-19T05:28:32.3442831Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-19T05:28:32.3443885Z       "requiredStages": [
2026-06-19T05:28:32.3444128Z         "impl",
2026-06-19T05:28:32.3444343Z         "unit"
2026-06-19T05:28:32.3444547Z       ],
2026-06-19T05:28:32.3444744Z       "stages": {
2026-06-19T05:28:32.3444946Z         "doc": {
2026-06-19T05:28:32.3445166Z           "complete": false,
2026-06-19T05:28:32.3445415Z           "evidence": []
2026-06-19T05:28:32.3445638Z         },
2026-06-19T05:28:32.3445843Z         "impl": {
2026-06-19T05:28:32.3446072Z           "complete": true,
2026-06-19T05:28:32.3446311Z           "evidence": [
2026-06-19T05:28:32.3446539Z             {
2026-06-19T05:28:32.3446772Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3447049Z               "line": 27
2026-06-19T05:28:32.3447263Z             },
2026-06-19T05:28:32.3447460Z             {
2026-06-19T05:28:32.3447710Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3448009Z               "line": 75
2026-06-19T05:28:32.3448229Z             },
2026-06-19T05:28:32.3448433Z             {
2026-06-19T05:28:32.3448677Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3449025Z               "line": 98
2026-06-19T05:28:32.3449231Z             },
2026-06-19T05:28:32.3449440Z             {
2026-06-19T05:28:32.3449683Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:28:32.3449973Z               "line": 82
2026-06-19T05:28:32.3450187Z             },
2026-06-19T05:28:32.3450380Z             {
2026-06-19T05:28:32.3450619Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:28:32.3450906Z               "line": 109
2026-06-19T05:28:32.3451135Z             },
2026-06-19T05:28:32.3451333Z             {
2026-06-19T05:28:32.3451578Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:28:32.3451858Z               "line": 127
2026-06-19T05:28:32.3452201Z             },
2026-06-19T05:28:32.3452403Z             {
2026-06-19T05:28:32.3452643Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:28:32.3452923Z               "line": 142
2026-06-19T05:28:32.3453148Z             },
2026-06-19T05:28:32.3453358Z             {
2026-06-19T05:28:32.3453586Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3453968Z               "line": 6905
2026-06-19T05:28:32.3454196Z             }
2026-06-19T05:28:32.3454401Z           ]
2026-06-19T05:28:32.3454588Z         },
2026-06-19T05:28:32.3454788Z         "int": {
2026-06-19T05:28:32.3455008Z           "complete": false,
2026-06-19T05:28:32.3455246Z           "evidence": []
2026-06-19T05:28:32.3455464Z         },
2026-06-19T05:28:32.3455670Z         "unit": {
2026-06-19T05:28:32.3455927Z           "complete": true,
2026-06-19T05:28:32.3456189Z           "evidence": [
2026-06-19T05:28:32.3456412Z             {
2026-06-19T05:28:32.3456656Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3456947Z               "line": 334
2026-06-19T05:28:32.3457172Z             },
2026-06-19T05:28:32.3457376Z             {
2026-06-19T05:28:32.3457623Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3457903Z               "line": 380
2026-06-19T05:28:32.3458131Z             },
2026-06-19T05:28:32.3458326Z             {
2026-06-19T05:28:32.3458584Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3458861Z               "line": 391
2026-06-19T05:28:32.3459142Z             },
2026-06-19T05:28:32.3459346Z             {
2026-06-19T05:28:32.3459590Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:28:32.3459880Z               "line": 165
2026-06-19T05:28:32.3460110Z             },
2026-06-19T05:28:32.3460320Z             {
2026-06-19T05:28:32.3460557Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:28:32.3460831Z               "line": 184
2026-06-19T05:28:32.3461060Z             },
2026-06-19T05:28:32.3461259Z             {
2026-06-19T05:28:32.3461503Z               "path": "crates/spt-store/src/grants.rs",
2026-06-19T05:28:32.3461790Z               "line": 204
2026-06-19T05:28:32.3462009Z             },
2026-06-19T05:28:32.3462218Z             {
2026-06-19T05:28:32.3462437Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3462715Z               "line": 8139
2026-06-19T05:28:32.3462944Z             }
2026-06-19T05:28:32.3463138Z           ]
2026-06-19T05:28:32.3463333Z         }
2026-06-19T05:28:32.3463530Z       }
2026-06-19T05:28:32.3463732Z     },
2026-06-19T05:28:32.3463923Z     {
2026-06-19T05:28:32.3464151Z       "id": "REQ-CONSENT-2",
2026-06-19T05:28:32.3465163Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-19T05:28:32.3466143Z       "requiredStages": [
2026-06-19T05:28:32.3466376Z         "impl",
2026-06-19T05:28:32.3466587Z         "unit"
2026-06-19T05:28:32.3466797Z       ],
2026-06-19T05:28:32.3467001Z       "stages": {
2026-06-19T05:28:32.3467221Z         "doc": {
2026-06-19T05:28:32.3467441Z           "complete": false,
2026-06-19T05:28:32.3467678Z           "evidence": []
2026-06-19T05:28:32.3467907Z         },
2026-06-19T05:28:32.3468109Z         "impl": {
2026-06-19T05:28:32.3468335Z           "complete": true,
2026-06-19T05:28:32.3468567Z           "evidence": [
2026-06-19T05:28:32.3468792Z             {
2026-06-19T05:28:32.3469153Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3469435Z               "line": 140
2026-06-19T05:28:32.3469665Z             },
2026-06-19T05:28:32.3469873Z             {
2026-06-19T05:28:32.3470117Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3470398Z               "line": 165
2026-06-19T05:28:32.3470731Z             },
2026-06-19T05:28:32.3470938Z             {
2026-06-19T05:28:32.3471183Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3471458Z               "line": 199
2026-06-19T05:28:32.3471673Z             },
2026-06-19T05:28:32.3471872Z             {
2026-06-19T05:28:32.3472111Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3472497Z               "line": 241
2026-06-19T05:28:32.3472721Z             },
2026-06-19T05:28:32.3472922Z             {
2026-06-19T05:28:32.3473171Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3473461Z               "line": 269
2026-06-19T05:28:32.3473678Z             },
2026-06-19T05:28:32.3473869Z             {
2026-06-19T05:28:32.3474105Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3474391Z               "line": 300
2026-06-19T05:28:32.3474621Z             },
2026-06-19T05:28:32.3474826Z             {
2026-06-19T05:28:32.3475059Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3475360Z               "line": 6696
2026-06-19T05:28:32.3475584Z             },
2026-06-19T05:28:32.3475790Z             {
2026-06-19T05:28:32.3476013Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3476289Z               "line": 6754
2026-06-19T05:28:32.3476518Z             }
2026-06-19T05:28:32.3476722Z           ]
2026-06-19T05:28:32.3476932Z         },
2026-06-19T05:28:32.3477128Z         "int": {
2026-06-19T05:28:32.3477357Z           "complete": false,
2026-06-19T05:28:32.3530186Z           "evidence": []
2026-06-19T05:28:32.3530643Z         },
2026-06-19T05:28:32.3530863Z         "unit": {
2026-06-19T05:28:32.3531098Z           "complete": true,
2026-06-19T05:28:32.3531344Z           "evidence": [
2026-06-19T05:28:32.3531578Z             {
2026-06-19T05:28:32.3531848Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3532162Z               "line": 419
2026-06-19T05:28:32.3532391Z             },
2026-06-19T05:28:32.3532657Z             {
2026-06-19T05:28:32.3532914Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3533206Z               "line": 436
2026-06-19T05:28:32.3533425Z             },
2026-06-19T05:28:32.3533630Z             {
2026-06-19T05:28:32.3533878Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3534188Z               "line": 472
2026-06-19T05:28:32.3534473Z             },
2026-06-19T05:28:32.3534673Z             {
2026-06-19T05:28:32.3534914Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.3535195Z               "line": 516
2026-06-19T05:28:32.3535415Z             },
2026-06-19T05:28:32.3535611Z             {
2026-06-19T05:28:32.3535848Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3536120Z               "line": 9419
2026-06-19T05:28:32.3536344Z             },
2026-06-19T05:28:32.3536560Z             {
2026-06-19T05:28:32.3536788Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3537073Z               "line": 9501
2026-06-19T05:28:32.3537301Z             }
2026-06-19T05:28:32.3537500Z           ]
2026-06-19T05:28:32.3537699Z         }
2026-06-19T05:28:32.3537891Z       }
2026-06-19T05:28:32.3538086Z     },
2026-06-19T05:28:32.3538273Z     {
2026-06-19T05:28:32.3538497Z       "id": "REQ-CONSENT-3",
2026-06-19T05:28:32.3540770Z       "title": "Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).",
2026-06-19T05:28:32.3542849Z       "requiredStages": [
2026-06-19T05:28:32.3543088Z         "doc",
2026-06-19T05:28:32.3543304Z         "impl",
2026-06-19T05:28:32.3543512Z         "unit",
2026-06-19T05:28:32.3543713Z         "int"
2026-06-19T05:28:32.3543919Z       ],
2026-06-19T05:28:32.3544128Z       "stages": {
2026-06-19T05:28:32.3544352Z         "doc": {
2026-06-19T05:28:32.3544568Z           "complete": true,
2026-06-19T05:28:32.3544939Z           "evidence": [
2026-06-19T05:28:32.3545195Z             {
2026-06-19T05:28:32.3545416Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.3545675Z               "line": 304
2026-06-19T05:28:32.3545899Z             }
2026-06-19T05:28:32.3546099Z           ]
2026-06-19T05:28:32.3546295Z         },
2026-06-19T05:28:32.3546481Z         "impl": {
2026-06-19T05:28:32.3546704Z           "complete": true,
2026-06-19T05:28:32.3546942Z           "evidence": [
2026-06-19T05:28:32.3547163Z             {
2026-06-19T05:28:32.3547430Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.3547738Z               "line": 123
2026-06-19T05:28:32.3547959Z             },
2026-06-19T05:28:32.3548166Z             {
2026-06-19T05:28:32.3548423Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.3548709Z               "line": 162
2026-06-19T05:28:32.3548932Z             },
2026-06-19T05:28:32.3549218Z             {
2026-06-19T05:28:32.3549466Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.3549762Z               "line": 291
2026-06-19T05:28:32.3549987Z             },
2026-06-19T05:28:32.3550186Z             {
2026-06-19T05:28:32.3550439Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.3550730Z               "line": 530
2026-06-19T05:28:32.3550953Z             },
2026-06-19T05:28:32.3551158Z             {
2026-06-19T05:28:32.3551397Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.3551692Z               "line": 780
2026-06-19T05:28:32.3551912Z             },
2026-06-19T05:28:32.3552116Z             {
2026-06-19T05:28:32.3552345Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3552618Z               "line": 6822
2026-06-19T05:28:32.3552845Z             }
2026-06-19T05:28:32.3553043Z           ]
2026-06-19T05:28:32.3553244Z         },
2026-06-19T05:28:32.3553448Z         "int": {
2026-06-19T05:28:32.3553668Z           "complete": true,
2026-06-19T05:28:32.3553921Z           "evidence": [
2026-06-19T05:28:32.3554150Z             {
2026-06-19T05:28:32.3554426Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-19T05:28:32.3554731Z               "line": 16
2026-06-19T05:28:32.3554945Z             }
2026-06-19T05:28:32.3555147Z           ]
2026-06-19T05:28:32.3555337Z         },
2026-06-19T05:28:32.3555537Z         "unit": {
2026-06-19T05:28:32.3555765Z           "complete": true,
2026-06-19T05:28:32.3556063Z           "evidence": [
2026-06-19T05:28:32.3556291Z             {
2026-06-19T05:28:32.3556544Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.3556831Z               "line": 1019
2026-06-19T05:28:32.3557060Z             },
2026-06-19T05:28:32.3557259Z             {
2026-06-19T05:28:32.3557512Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.3557803Z               "line": 1066
2026-06-19T05:28:32.3558028Z             },
2026-06-19T05:28:32.3558226Z             {
2026-06-19T05:28:32.3558482Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.3558773Z               "line": 1191
2026-06-19T05:28:32.3559054Z             }
2026-06-19T05:28:32.3559250Z           ]
2026-06-19T05:28:32.3559454Z         }
2026-06-19T05:28:32.3559650Z       }
2026-06-19T05:28:32.3559841Z     },
2026-06-19T05:28:32.3560036Z     {
2026-06-19T05:28:32.3560160Z       "id": "REQ-CONV-1",
2026-06-19T05:28:32.3561643Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-19T05:28:32.3561895Z       "requiredStages": [
2026-06-19T05:28:32.3562109Z         "impl",
2026-06-19T05:28:32.3562210Z         "unit"
2026-06-19T05:28:32.3562310Z       ],
2026-06-19T05:28:32.3562419Z       "stages": {
2026-06-19T05:28:32.3562525Z         "doc": {
2026-06-19T05:28:32.3562643Z           "complete": false,
2026-06-19T05:28:32.3562764Z           "evidence": []
2026-06-19T05:28:32.3562868Z         },
2026-06-19T05:28:32.3562977Z         "impl": {
2026-06-19T05:28:32.3563093Z           "complete": true,
2026-06-19T05:28:32.3563211Z           "evidence": [
2026-06-19T05:28:32.3563305Z             {
2026-06-19T05:28:32.3563458Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3563584Z               "line": 938
2026-06-19T05:28:32.3563688Z             },
2026-06-19T05:28:32.3563785Z             {
2026-06-19T05:28:32.3563937Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.3564047Z               "line": 94
2026-06-19T05:28:32.3564166Z             },
2026-06-19T05:28:32.3564266Z             {
2026-06-19T05:28:32.3564429Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.3564538Z               "line": 345
2026-06-19T05:28:32.3564642Z             },
2026-06-19T05:28:32.3564739Z             {
2026-06-19T05:28:32.3564890Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.3565010Z               "line": 387
2026-06-19T05:28:32.3565105Z             },
2026-06-19T05:28:32.3565215Z             {
2026-06-19T05:28:32.3565354Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.3565458Z               "line": 472
2026-06-19T05:28:32.3565563Z             },
2026-06-19T05:28:32.3565674Z             {
2026-06-19T05:28:32.3565830Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3565941Z               "line": 667
2026-06-19T05:28:32.3566045Z             },
2026-06-19T05:28:32.3566144Z             {
2026-06-19T05:28:32.3566291Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3566414Z               "line": 693
2026-06-19T05:28:32.3566513Z             },
2026-06-19T05:28:32.3566618Z             {
2026-06-19T05:28:32.3566766Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.3566880Z               "line": 369
2026-06-19T05:28:32.3566976Z             },
2026-06-19T05:28:32.3567081Z             {
2026-06-19T05:28:32.3567233Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-19T05:28:32.3567338Z               "line": 19
2026-06-19T05:28:32.3567443Z             }
2026-06-19T05:28:32.3567534Z           ]
2026-06-19T05:28:32.3567639Z         },
2026-06-19T05:28:32.3567744Z         "int": {
2026-06-19T05:28:32.3567873Z           "complete": false,
2026-06-19T05:28:32.3567982Z           "evidence": []
2026-06-19T05:28:32.3568072Z         },
2026-06-19T05:28:32.3568183Z         "unit": {
2026-06-19T05:28:32.3568297Z           "complete": true,
2026-06-19T05:28:32.3568411Z           "evidence": [
2026-06-19T05:28:32.3568502Z             {
2026-06-19T05:28:32.3568659Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3568767Z               "line": 1263
2026-06-19T05:28:32.3568868Z             },
2026-06-19T05:28:32.3569028Z             {
2026-06-19T05:28:32.3569175Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-19T05:28:32.3569296Z               "line": 108
2026-06-19T05:28:32.3569389Z             },
2026-06-19T05:28:32.3569495Z             {
2026-06-19T05:28:32.3569639Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-19T05:28:32.3569747Z               "line": 134
2026-06-19T05:28:32.3569853Z             },
2026-06-19T05:28:32.3570057Z             {
2026-06-19T05:28:32.3570215Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-19T05:28:32.3570320Z               "line": 144
2026-06-19T05:28:32.3570425Z             }
2026-06-19T05:28:32.3570535Z           ]
2026-06-19T05:28:32.3570620Z         }
2026-06-19T05:28:32.3570730Z       }
2026-06-19T05:28:32.3570831Z     },
2026-06-19T05:28:32.3571030Z     {
2026-06-19T05:28:32.3571141Z       "id": "REQ-CONV-2",
2026-06-19T05:28:32.3572278Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-19T05:28:32.3572398Z       "requiredStages": [
2026-06-19T05:28:32.3572503Z         "impl",
2026-06-19T05:28:32.3572602Z         "unit"
2026-06-19T05:28:32.3572704Z       ],
2026-06-19T05:28:32.3572812Z       "stages": {
2026-06-19T05:28:32.3572907Z         "doc": {
2026-06-19T05:28:32.3573023Z           "complete": false,
2026-06-19T05:28:32.3573141Z           "evidence": []
2026-06-19T05:28:32.3573241Z         },
2026-06-19T05:28:32.3573352Z         "impl": {
2026-06-19T05:28:32.3573465Z           "complete": true,
2026-06-19T05:28:32.3573585Z           "evidence": [
2026-06-19T05:28:32.3573691Z             {
2026-06-19T05:28:32.3573832Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3573951Z               "line": 409
2026-06-19T05:28:32.3574061Z             },
2026-06-19T05:28:32.3574168Z             {
2026-06-19T05:28:32.3574316Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:28:32.3574431Z               "line": 119
2026-06-19T05:28:32.3574540Z             },
2026-06-19T05:28:32.3574640Z             {
2026-06-19T05:28:32.3574797Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.3574917Z               "line": 841
2026-06-19T05:28:32.3575022Z             },
2026-06-19T05:28:32.3575126Z             {
2026-06-19T05:28:32.3575280Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.3575389Z               "line": 852
2026-06-19T05:28:32.3575493Z             },
2026-06-19T05:28:32.3575595Z             {
2026-06-19T05:28:32.3575747Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.3575866Z               "line": 334
2026-06-19T05:28:32.3575967Z             },
2026-06-19T05:28:32.3576071Z             {
2026-06-19T05:28:32.3576210Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3576314Z               "line": 2950
2026-06-19T05:28:32.3576414Z             },
2026-06-19T05:28:32.3576515Z             {
2026-06-19T05:28:32.3576638Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3576747Z               "line": 2966
2026-06-19T05:28:32.3576856Z             },
2026-06-19T05:28:32.3576969Z             {
2026-06-19T05:28:32.3577097Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3577212Z               "line": 3046
2026-06-19T05:28:32.3577312Z             }
2026-06-19T05:28:32.3577416Z           ]
2026-06-19T05:28:32.3577518Z         },
2026-06-19T05:28:32.3577618Z         "int": {
2026-06-19T05:28:32.3577736Z           "complete": false,
2026-06-19T05:28:32.3577847Z           "evidence": []
2026-06-19T05:28:32.3577951Z         },
2026-06-19T05:28:32.3578055Z         "unit": {
2026-06-19T05:28:32.3578171Z           "complete": true,
2026-06-19T05:28:32.3578280Z           "evidence": [
2026-06-19T05:28:32.3578389Z             {
2026-06-19T05:28:32.3578709Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3578928Z               "line": 889
2026-06-19T05:28:32.3579139Z             },
2026-06-19T05:28:32.3579304Z             {
2026-06-19T05:28:32.3579513Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3579851Z               "line": 1014
2026-06-19T05:28:32.3580036Z             },
2026-06-19T05:28:32.3580165Z             {
2026-06-19T05:28:32.3580399Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:28:32.3580574Z               "line": 215
2026-06-19T05:28:32.3580747Z             }
2026-06-19T05:28:32.3580923Z           ]
2026-06-19T05:28:32.3581048Z         }
2026-06-19T05:28:32.3581334Z       }
2026-06-19T05:28:32.3581452Z     },
2026-06-19T05:28:32.3581649Z     {
2026-06-19T05:28:32.3581833Z       "id": "REQ-DAEMON-1",
2026-06-19T05:28:32.3582124Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-19T05:28:32.3582310Z       "requiredStages": [
2026-06-19T05:28:32.3582443Z         "impl",
2026-06-19T05:28:32.3582639Z         "unit",
2026-06-19T05:28:32.3582786Z         "int"
2026-06-19T05:28:32.3582944Z       ],
2026-06-19T05:28:32.3583120Z       "stages": {
2026-06-19T05:28:32.3583254Z         "doc": {
2026-06-19T05:28:32.3583468Z           "complete": false,
2026-06-19T05:28:32.3583631Z           "evidence": []
2026-06-19T05:28:32.3583806Z         },
2026-06-19T05:28:32.3583941Z         "impl": {
2026-06-19T05:28:32.3584121Z           "complete": true,
2026-06-19T05:28:32.3584313Z           "evidence": [
2026-06-19T05:28:32.3584454Z             {
2026-06-19T05:28:32.3584691Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3584833Z               "line": 229
2026-06-19T05:28:32.3585000Z             },
2026-06-19T05:28:32.3585186Z             {
2026-06-19T05:28:32.3585367Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:28:32.3585677Z               "line": 12
2026-06-19T05:28:32.3585811Z             },
2026-06-19T05:28:32.3585973Z             {
2026-06-19T05:28:32.3586136Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3586373Z               "line": 16
2026-06-19T05:28:32.3586541Z             },
2026-06-19T05:28:32.3586673Z             {
2026-06-19T05:28:32.3586879Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3587007Z               "line": 309
2026-06-19T05:28:32.3587250Z             },
2026-06-19T05:28:32.3587407Z             {
2026-06-19T05:28:32.3587595Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3587767Z               "line": 24
2026-06-19T05:28:32.3587882Z             },
2026-06-19T05:28:32.3588106Z             {
2026-06-19T05:28:32.3588291Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3588463Z               "line": 262
2026-06-19T05:28:32.3588615Z             },
2026-06-19T05:28:32.3588726Z             {
2026-06-19T05:28:32.3589070Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3589216Z               "line": 279
2026-06-19T05:28:32.3589380Z             },
2026-06-19T05:28:32.3589502Z             {
2026-06-19T05:28:32.3589709Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3589940Z               "line": 356
2026-06-19T05:28:32.3590082Z             },
2026-06-19T05:28:32.3590242Z             {
2026-06-19T05:28:32.3590416Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3590577Z               "line": 658
2026-06-19T05:28:32.3590810Z             },
2026-06-19T05:28:32.3590935Z             {
2026-06-19T05:28:32.3591134Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-19T05:28:32.3591269Z               "line": 15
2026-06-19T05:28:32.3591431Z             },
2026-06-19T05:28:32.3591599Z             {
2026-06-19T05:28:32.3591812Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.3591988Z               "line": 229
2026-06-19T05:28:32.3592122Z             },
2026-06-19T05:28:32.3592280Z             {
2026-06-19T05:28:32.3592475Z               "path": "crates/spt/src/api/live.rs",
2026-06-19T05:28:32.3592903Z               "line": 13
2026-06-19T05:28:32.3593022Z             },
2026-06-19T05:28:32.3593180Z             {
2026-06-19T05:28:32.3593509Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.3593699Z               "line": 358
2026-06-19T05:28:32.3593871Z             },
2026-06-19T05:28:32.3594000Z             {
2026-06-19T05:28:32.3594220Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.3594385Z               "line": 463
2026-06-19T05:28:32.3594549Z             }
2026-06-19T05:28:32.3594835Z           ]
2026-06-19T05:28:32.3594985Z         },
2026-06-19T05:28:32.3595157Z         "int": {
2026-06-19T05:28:32.3595307Z           "complete": true,
2026-06-19T05:28:32.3595513Z           "evidence": [
2026-06-19T05:28:32.3595703Z             {
2026-06-19T05:28:32.3595946Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-19T05:28:32.3596119Z               "line": 2
2026-06-19T05:28:32.3596251Z             },
2026-06-19T05:28:32.3596438Z             {
2026-06-19T05:28:32.3596734Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-19T05:28:32.3596886Z               "line": 16
2026-06-19T05:28:32.3597049Z             },
2026-06-19T05:28:32.3597171Z             {
2026-06-19T05:28:32.3597435Z               "path": "crates/spt/tests/live_bind_firsthost_e2e.rs",
2026-06-19T05:28:32.3597606Z               "line": 12
2026-06-19T05:28:32.3597764Z             },
2026-06-19T05:28:32.3597928Z             {
2026-06-19T05:28:32.3598123Z               "path": "crates/spt/tests/live_firsthost_e2e.rs",
2026-06-19T05:28:32.3598322Z               "line": 12
2026-06-19T05:28:32.3598484Z             },
2026-06-19T05:28:32.3598643Z             {
2026-06-19T05:28:32.3598842Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-19T05:28:32.3599077Z               "line": 44
2026-06-19T05:28:32.3599262Z             }
2026-06-19T05:28:32.3599415Z           ]
2026-06-19T05:28:32.3599572Z         },
2026-06-19T05:28:32.3599700Z         "unit": {
2026-06-19T05:28:32.3599873Z           "complete": true,
2026-06-19T05:28:32.3600087Z           "evidence": [
2026-06-19T05:28:32.3600241Z             {
2026-06-19T05:28:32.3600452Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:28:32.3600591Z               "line": 285
2026-06-19T05:28:32.3600755Z             },
2026-06-19T05:28:32.3600870Z             {
2026-06-19T05:28:32.3601151Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:28:32.3601328Z               "line": 293
2026-06-19T05:28:32.3601456Z             },
2026-06-19T05:28:32.3601624Z             {
2026-06-19T05:28:32.3601786Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:28:32.3602014Z               "line": 309
2026-06-19T05:28:32.3602144Z             },
2026-06-19T05:28:32.3602310Z             {
2026-06-19T05:28:32.3602530Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:28:32.3602672Z               "line": 317
2026-06-19T05:28:32.3602891Z             },
2026-06-19T05:28:32.3603025Z             {
2026-06-19T05:28:32.3603234Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3603430Z               "line": 659
2026-06-19T05:28:32.3603540Z             },
2026-06-19T05:28:32.3603759Z             {
2026-06-19T05:28:32.3603935Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3604112Z               "line": 729
2026-06-19T05:28:32.3604254Z             },
2026-06-19T05:28:32.3604403Z             {
2026-06-19T05:28:32.3604670Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3604803Z               "line": 1151
2026-06-19T05:28:32.3604955Z             },
2026-06-19T05:28:32.3605099Z             {
2026-06-19T05:28:32.3605294Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3605517Z               "line": 1188
2026-06-19T05:28:32.3605650Z             },
2026-06-19T05:28:32.3605825Z             {
2026-06-19T05:28:32.3605997Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3606159Z               "line": 1211
2026-06-19T05:28:32.3606454Z             },
2026-06-19T05:28:32.3606631Z             {
2026-06-19T05:28:32.3606863Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3607537Z               "line": 1240
2026-06-19T05:28:32.3607680Z             },
2026-06-19T05:28:32.3607847Z             {
2026-06-19T05:28:32.3608085Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3608338Z               "line": 1288
2026-06-19T05:28:32.3608503Z             },
2026-06-19T05:28:32.3608650Z             {
2026-06-19T05:28:32.3608859Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3609130Z               "line": 1331
2026-06-19T05:28:32.3609260Z             },
2026-06-19T05:28:32.3609421Z             {
2026-06-19T05:28:32.3609607Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-19T05:28:32.3609813Z               "line": 106
2026-06-19T05:28:32.3610012Z             },
2026-06-19T05:28:32.3610138Z             {
2026-06-19T05:28:32.3610341Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-19T05:28:32.3610481Z               "line": 132
2026-06-19T05:28:32.3610675Z             },
2026-06-19T05:28:32.3610853Z             {
2026-06-19T05:28:32.3611022Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.3611194Z               "line": 504
2026-06-19T05:28:32.3611325Z             }
2026-06-19T05:28:32.3611532Z           ]
2026-06-19T05:28:32.3611702Z         }
2026-06-19T05:28:32.3611826Z       }
2026-06-19T05:28:32.3611978Z     },
2026-06-19T05:28:32.3612108Z     {
2026-06-19T05:28:32.3612321Z       "id": "REQ-DAEMON-2",
2026-06-19T05:28:32.3612532Z       "title": "Broker/brain split for seamless self-update",
2026-06-19T05:28:32.3612704Z       "requiredStages": [
2026-06-19T05:28:32.3612861Z         "impl",
2026-06-19T05:28:32.3612995Z         "unit",
2026-06-19T05:28:32.3613175Z         "int"
2026-06-19T05:28:32.3613320Z       ],
2026-06-19T05:28:32.3613480Z       "stages": {
2026-06-19T05:28:32.3613610Z         "doc": {
2026-06-19T05:28:32.3613804Z           "complete": true,
2026-06-19T05:28:32.3614009Z           "evidence": [
2026-06-19T05:28:32.3614147Z             {
2026-06-19T05:28:32.3614362Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-19T05:28:32.3614495Z               "line": 250
2026-06-19T05:28:32.3614654Z             }
2026-06-19T05:28:32.3614767Z           ]
2026-06-19T05:28:32.3614982Z         },
2026-06-19T05:28:32.3615148Z         "impl": {
2026-06-19T05:28:32.3615293Z           "complete": true,
2026-06-19T05:28:32.3615473Z           "evidence": [
2026-06-19T05:28:32.3615579Z             {
2026-06-19T05:28:32.3615835Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.3616020Z               "line": 23
2026-06-19T05:28:32.3616167Z             },
2026-06-19T05:28:32.3616333Z             {
2026-06-19T05:28:32.3616489Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.3616704Z               "line": 796
2026-06-19T05:28:32.3616828Z             },
2026-06-19T05:28:32.3617014Z             {
2026-06-19T05:28:32.3617215Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.3617334Z               "line": 821
2026-06-19T05:28:32.3617554Z             },
2026-06-19T05:28:32.3617687Z             {
2026-06-19T05:28:32.3617906Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.3618053Z               "line": 1057
2026-06-19T05:28:32.3618207Z             },
2026-06-19T05:28:32.3618412Z             {
2026-06-19T05:28:32.3618583Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3618775Z               "line": 32
2026-06-19T05:28:32.3618898Z             },
2026-06-19T05:28:32.3619107Z             {
2026-06-19T05:28:32.3619380Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3619539Z               "line": 550
2026-06-19T05:28:32.3619691Z             },
2026-06-19T05:28:32.3619820Z             {
2026-06-19T05:28:32.3620010Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3620315Z               "line": 1130
2026-06-19T05:28:32.3620510Z             },
2026-06-19T05:28:32.3620663Z             {
2026-06-19T05:28:32.3620839Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3620998Z               "line": 1417
2026-06-19T05:28:32.3621173Z             },
2026-06-19T05:28:32.3621356Z             {
2026-06-19T05:28:32.3621625Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-19T05:28:32.3621796Z               "line": 11
2026-06-19T05:28:32.3621957Z             },
2026-06-19T05:28:32.3622129Z             {
2026-06-19T05:28:32.3622349Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3622490Z               "line": 148
2026-06-19T05:28:32.3622659Z             },
2026-06-19T05:28:32.3622819Z             {
2026-06-19T05:28:32.3623030Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3623211Z               "line": 338
2026-06-19T05:28:32.3623336Z             },
2026-06-19T05:28:32.3623507Z             {
2026-06-19T05:28:32.3623683Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:28:32.3623880Z               "line": 13
2026-06-19T05:28:32.3624045Z             },
2026-06-19T05:28:32.3624170Z             {
2026-06-19T05:28:32.3624388Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3624540Z               "line": 27
2026-06-19T05:28:32.3624721Z             },
2026-06-19T05:28:32.3624894Z             {
2026-06-19T05:28:32.3625064Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3625251Z               "line": 147
2026-06-19T05:28:32.3625379Z             },
2026-06-19T05:28:32.3625561Z             {
2026-06-19T05:28:32.3625747Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3625923Z               "line": 632
2026-06-19T05:28:32.3626105Z             },
2026-06-19T05:28:32.3626233Z             {
2026-06-19T05:28:32.3626463Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3626638Z               "line": 853
2026-06-19T05:28:32.3626804Z             },
2026-06-19T05:28:32.3626950Z             {
2026-06-19T05:28:32.3627150Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3627345Z               "line": 1000
2026-06-19T05:28:32.3627484Z             },
2026-06-19T05:28:32.3627655Z             {
2026-06-19T05:28:32.3627832Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3628008Z               "line": 1089
2026-06-19T05:28:32.3628213Z             },
2026-06-19T05:28:32.3628357Z             {
2026-06-19T05:28:32.3628580Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3628720Z               "line": 1211
2026-06-19T05:28:32.3628881Z             },
2026-06-19T05:28:32.3629138Z             {
2026-06-19T05:28:32.3629425Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-19T05:28:32.3629614Z               "line": 10
2026-06-19T05:28:32.3629742Z             }
2026-06-19T05:28:32.3629897Z           ]
2026-06-19T05:28:32.3630008Z         },
2026-06-19T05:28:32.3630236Z         "int": {
2026-06-19T05:28:32.3630399Z           "complete": true,
2026-06-19T05:28:32.3630565Z           "evidence": [
2026-06-19T05:28:32.3630719Z             {
2026-06-19T05:28:32.3630880Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:28:32.3631128Z               "line": 17
2026-06-19T05:28:32.3631253Z             },
2026-06-19T05:28:32.3631414Z             {
2026-06-19T05:28:32.3631625Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:28:32.3637677Z               "line": 90
2026-06-19T05:28:32.3637829Z             },
2026-06-19T05:28:32.3637934Z             {
2026-06-19T05:28:32.3638102Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:28:32.3638220Z               "line": 110
2026-06-19T05:28:32.3638322Z             },
2026-06-19T05:28:32.3638426Z             {
2026-06-19T05:28:32.3638755Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:28:32.3638864Z               "line": 186
2026-06-19T05:28:32.3639045Z             },
2026-06-19T05:28:32.3639145Z             {
2026-06-19T05:28:32.3639318Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:28:32.3639427Z               "line": 309
2026-06-19T05:28:32.3639527Z             },
2026-06-19T05:28:32.3639736Z             {
2026-06-19T05:28:32.3639905Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-19T05:28:32.3640013Z               "line": 128
2026-06-19T05:28:32.3640107Z             },
2026-06-19T05:28:32.3640212Z             {
2026-06-19T05:28:32.3640358Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-19T05:28:32.3640462Z               "line": 59
2026-06-19T05:28:32.3640568Z             }
2026-06-19T05:28:32.3640668Z           ]
2026-06-19T05:28:32.3640772Z         },
2026-06-19T05:28:32.3640874Z         "unit": {
2026-06-19T05:28:32.3640988Z           "complete": true,
2026-06-19T05:28:32.3641101Z           "evidence": [
2026-06-19T05:28:32.3641198Z             {
2026-06-19T05:28:32.3641340Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-19T05:28:32.3641445Z               "line": 62
2026-06-19T05:28:32.3641546Z             },
2026-06-19T05:28:32.3641645Z             {
2026-06-19T05:28:32.3641793Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-19T05:28:32.3641903Z               "line": 76
2026-06-19T05:28:32.3642008Z             },
2026-06-19T05:28:32.3642104Z             {
2026-06-19T05:28:32.3642242Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-19T05:28:32.3642351Z               "line": 88
2026-06-19T05:28:32.3642448Z             },
2026-06-19T05:28:32.3642547Z             {
2026-06-19T05:28:32.3642702Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:28:32.3642808Z               "line": 294
2026-06-19T05:28:32.3642906Z             },
2026-06-19T05:28:32.3643005Z             {
2026-06-19T05:28:32.3643144Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:28:32.3643249Z               "line": 825
2026-06-19T05:28:32.3643353Z             },
2026-06-19T05:28:32.3643459Z             {
2026-06-19T05:28:32.3643592Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:28:32.3643697Z               "line": 833
2026-06-19T05:28:32.3643807Z             },
2026-06-19T05:28:32.3643903Z             {
2026-06-19T05:28:32.3644036Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:28:32.3644160Z               "line": 850
2026-06-19T05:28:32.3644260Z             },
2026-06-19T05:28:32.3644355Z             {
2026-06-19T05:28:32.3644494Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:28:32.3644603Z               "line": 926
2026-06-19T05:28:32.3644709Z             },
2026-06-19T05:28:32.3644808Z             {
2026-06-19T05:28:32.3644961Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3645067Z               "line": 1282
2026-06-19T05:28:32.3645175Z             },
2026-06-19T05:28:32.3645271Z             {
2026-06-19T05:28:32.3645415Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3645532Z               "line": 1294
2026-06-19T05:28:32.3645632Z             },
2026-06-19T05:28:32.3645723Z             {
2026-06-19T05:28:32.3645879Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-19T05:28:32.3645994Z               "line": 110
2026-06-19T05:28:32.3646100Z             },
2026-06-19T05:28:32.3646199Z             {
2026-06-19T05:28:32.3646353Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-19T05:28:32.3646458Z               "line": 144
2026-06-19T05:28:32.3646562Z             }
2026-06-19T05:28:32.3646663Z           ]
2026-06-19T05:28:32.3646767Z         }
2026-06-19T05:28:32.3646872Z       }
2026-06-19T05:28:32.3646968Z     },
2026-06-19T05:28:32.3647067Z     {
2026-06-19T05:28:32.3647186Z       "id": "REQ-DAEMON-3",
2026-06-19T05:28:32.3647368Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-19T05:28:32.3647588Z       "requiredStages": [
2026-06-19T05:28:32.3647692Z         "impl",
2026-06-19T05:28:32.3647805Z         "unit",
2026-06-19T05:28:32.3647905Z         "int"
2026-06-19T05:28:32.3648009Z       ],
2026-06-19T05:28:32.3648113Z       "stages": {
2026-06-19T05:28:32.3648222Z         "doc": {
2026-06-19T05:28:32.3648413Z           "complete": false,
2026-06-19T05:28:32.3648513Z           "evidence": []
2026-06-19T05:28:32.3648614Z         },
2026-06-19T05:28:32.3648718Z         "impl": {
2026-06-19T05:28:32.3648838Z           "complete": true,
2026-06-19T05:28:32.3649024Z           "evidence": [
2026-06-19T05:28:32.3649123Z             {
2026-06-19T05:28:32.3649272Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3649376Z               "line": 14
2026-06-19T05:28:32.3649482Z             },
2026-06-19T05:28:32.3649582Z             {
2026-06-19T05:28:32.3649724Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-19T05:28:32.3649845Z               "line": 11
2026-06-19T05:28:32.3649944Z             },
2026-06-19T05:28:32.3650039Z             {
2026-06-19T05:28:32.3650170Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.3650282Z               "line": 305
2026-06-19T05:28:32.3650373Z             },
2026-06-19T05:28:32.3650475Z             {
2026-06-19T05:28:32.3650620Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3650734Z               "line": 1849
2026-06-19T05:28:32.3650835Z             },
2026-06-19T05:28:32.3650932Z             {
2026-06-19T05:28:32.3651056Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3651167Z               "line": 4111
2026-06-19T05:28:32.3651266Z             },
2026-06-19T05:28:32.3651366Z             {
2026-06-19T05:28:32.3651496Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3651599Z               "line": 4132
2026-06-19T05:28:32.3651700Z             }
2026-06-19T05:28:32.3651805Z           ]
2026-06-19T05:28:32.3651905Z         },
2026-06-19T05:28:32.3652015Z         "int": {
2026-06-19T05:28:32.3652125Z           "complete": true,
2026-06-19T05:28:32.3652234Z           "evidence": [
2026-06-19T05:28:32.3652324Z             {
2026-06-19T05:28:32.3652477Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:28:32.3652587Z               "line": 49
2026-06-19T05:28:32.3652688Z             },
2026-06-19T05:28:32.3652792Z             {
2026-06-19T05:28:32.3652940Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:28:32.3653051Z               "line": 487
2026-06-19T05:28:32.3653154Z             }
2026-06-19T05:28:32.3653253Z           ]
2026-06-19T05:28:32.3653354Z         },
2026-06-19T05:28:32.3653462Z         "unit": {
2026-06-19T05:28:32.3653579Z           "complete": true,
2026-06-19T05:28:32.3653685Z           "evidence": [
2026-06-19T05:28:32.3653786Z             {
2026-06-19T05:28:32.3653933Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3654043Z               "line": 1452
2026-06-19T05:28:32.3654143Z             },
2026-06-19T05:28:32.3654247Z             {
2026-06-19T05:28:32.3654377Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3654495Z               "line": 10503
2026-06-19T05:28:32.3654596Z             }
2026-06-19T05:28:32.3654696Z           ]
2026-06-19T05:28:32.3654796Z         }
2026-06-19T05:28:32.3654891Z       }
2026-06-19T05:28:32.3654992Z     },
2026-06-19T05:28:32.3655092Z     {
2026-06-19T05:28:32.3655216Z       "id": "REQ-DAEMON-4",
2026-06-19T05:28:32.3655363Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-19T05:28:32.3655487Z       "requiredStages": [
2026-06-19T05:28:32.3655589Z         "impl",
2026-06-19T05:28:32.3655697Z         "unit",
2026-06-19T05:28:32.3655798Z         "int"
2026-06-19T05:28:32.3655899Z       ],
2026-06-19T05:28:32.3656054Z       "stages": {
2026-06-19T05:28:32.3656192Z         "doc": {
2026-06-19T05:28:32.3656312Z           "complete": false,
2026-06-19T05:28:32.3656531Z           "evidence": []
2026-06-19T05:28:32.3656636Z         },
2026-06-19T05:28:32.3656749Z         "impl": {
2026-06-19T05:28:32.3656865Z           "complete": true,
2026-06-19T05:28:32.3656965Z           "evidence": [
2026-06-19T05:28:32.3657064Z             {
2026-06-19T05:28:32.3657218Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3657422Z               "line": 464
2026-06-19T05:28:32.3657528Z             },
2026-06-19T05:28:32.3657627Z             {
2026-06-19T05:28:32.3657785Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3657900Z               "line": 529
2026-06-19T05:28:32.3658004Z             },
2026-06-19T05:28:32.3658109Z             {
2026-06-19T05:28:32.3658247Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3658361Z               "line": 551
2026-06-19T05:28:32.3658465Z             }
2026-06-19T05:28:32.3658570Z           ]
2026-06-19T05:28:32.3658673Z         },
2026-06-19T05:28:32.3658773Z         "int": {
2026-06-19T05:28:32.3658889Z           "complete": true,
2026-06-19T05:28:32.3659064Z           "evidence": [
2026-06-19T05:28:32.3659170Z             {
2026-06-19T05:28:32.3659326Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-19T05:28:32.3659437Z               "line": 42
2026-06-19T05:28:32.3659551Z             }
2026-06-19T05:28:32.3659655Z           ]
2026-06-19T05:28:32.3659756Z         },
2026-06-19T05:28:32.3659860Z         "unit": {
2026-06-19T05:28:32.3659979Z           "complete": true,
2026-06-19T05:28:32.3660085Z           "evidence": [
2026-06-19T05:28:32.3660194Z             {
2026-06-19T05:28:32.3660337Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:28:32.3660443Z               "line": 428
2026-06-19T05:28:32.3660552Z             },
2026-06-19T05:28:32.3660652Z             {
2026-06-19T05:28:32.3660800Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3660909Z               "line": 957
2026-06-19T05:28:32.3661015Z             },
2026-06-19T05:28:32.3661119Z             {
2026-06-19T05:28:32.3661265Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3661385Z               "line": 1027
2026-06-19T05:28:32.3661474Z             },
2026-06-19T05:28:32.3661578Z             {
2026-06-19T05:28:32.3661722Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3661826Z               "line": 1057
2026-06-19T05:28:32.3661931Z             },
2026-06-19T05:28:32.3662018Z             {
2026-06-19T05:28:32.3662169Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3662275Z               "line": 1090
2026-06-19T05:28:32.3662375Z             }
2026-06-19T05:28:32.3662474Z           ]
2026-06-19T05:28:32.3662585Z         }
2026-06-19T05:28:32.3662685Z       }
2026-06-19T05:28:32.3662780Z     },
2026-06-19T05:28:32.3662875Z     {
2026-06-19T05:28:32.3662986Z       "id": "REQ-DAEMON-5",
2026-06-19T05:28:32.3664407Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-19T05:28:32.3664546Z       "requiredStages": [
2026-06-19T05:28:32.3664646Z         "impl",
2026-06-19T05:28:32.3664746Z         "unit"
2026-06-19T05:28:32.3664841Z       ],
2026-06-19T05:28:32.3664946Z       "stages": {
2026-06-19T05:28:32.3665051Z         "doc": {
2026-06-19T05:28:32.3665161Z           "complete": false,
2026-06-19T05:28:32.3665280Z           "evidence": []
2026-06-19T05:28:32.3665380Z         },
2026-06-19T05:28:32.3665485Z         "impl": {
2026-06-19T05:28:32.3665595Z           "complete": true,
2026-06-19T05:28:32.3665815Z           "evidence": [
2026-06-19T05:28:32.3665909Z             {
2026-06-19T05:28:32.3666071Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3666187Z               "line": 476
2026-06-19T05:28:32.3666281Z             },
2026-06-19T05:28:32.3666386Z             {
2026-06-19T05:28:32.3666539Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3666752Z               "line": 769
2026-06-19T05:28:32.3666858Z             },
2026-06-19T05:28:32.3666958Z             {
2026-06-19T05:28:32.3667106Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3667220Z               "line": 782
2026-06-19T05:28:32.3667319Z             },
2026-06-19T05:28:32.3667426Z             {
2026-06-19T05:28:32.3667568Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3667677Z               "line": 800
2026-06-19T05:28:32.3667778Z             },
2026-06-19T05:28:32.3667882Z             {
2026-06-19T05:28:32.3668025Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3668150Z               "line": 841
2026-06-19T05:28:32.3668250Z             }
2026-06-19T05:28:32.3668355Z           ]
2026-06-19T05:28:32.3668455Z         },
2026-06-19T05:28:32.3668564Z         "int": {
2026-06-19T05:28:32.3668684Z           "complete": false,
2026-06-19T05:28:32.3668799Z           "evidence": []
2026-06-19T05:28:32.3668906Z         },
2026-06-19T05:28:32.3669102Z         "unit": {
2026-06-19T05:28:32.3669223Z           "complete": true,
2026-06-19T05:28:32.3669338Z           "evidence": [
2026-06-19T05:28:32.3669429Z             {
2026-06-19T05:28:32.3669581Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3669681Z               "line": 1189
2026-06-19T05:28:32.3669792Z             },
2026-06-19T05:28:32.3669886Z             {
2026-06-19T05:28:32.3670035Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3670149Z               "line": 1213
2026-06-19T05:28:32.3670244Z             },
2026-06-19T05:28:32.3670345Z             {
2026-06-19T05:28:32.3670487Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.3670602Z               "line": 1239
2026-06-19T05:28:32.3670698Z             }
2026-06-19T05:28:32.3670807Z           ]
2026-06-19T05:28:32.3670912Z         }
2026-06-19T05:28:32.3671013Z       }
2026-06-19T05:28:32.3671122Z     },
2026-06-19T05:28:32.3671217Z     {
2026-06-19T05:28:32.3671346Z       "id": "REQ-DAEMON-6",
2026-06-19T05:28:32.3673454Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-19T05:28:32.3673593Z       "requiredStages": [
2026-06-19T05:28:32.3673702Z         "impl",
2026-06-19T05:28:32.3673799Z         "unit"
2026-06-19T05:28:32.3673899Z       ],
2026-06-19T05:28:32.3674003Z       "stages": {
2026-06-19T05:28:32.3674109Z         "doc": {
2026-06-19T05:28:32.3674232Z           "complete": false,
2026-06-19T05:28:32.3674336Z           "evidence": []
2026-06-19T05:28:32.3674445Z         },
2026-06-19T05:28:32.3674540Z         "impl": {
2026-06-19T05:28:32.3674648Z           "complete": true,
2026-06-19T05:28:32.3674753Z           "evidence": [
2026-06-19T05:28:32.3674854Z             {
2026-06-19T05:28:32.3674996Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3675101Z               "line": 490
2026-06-19T05:28:32.3675197Z             },
2026-06-19T05:28:32.3675286Z             {
2026-06-19T05:28:32.3675564Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3675668Z               "line": 521
2026-06-19T05:28:32.3675770Z             },
2026-06-19T05:28:32.3675873Z             {
2026-06-19T05:28:32.3676021Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:28:32.3676126Z               "line": 55
2026-06-19T05:28:32.3676326Z             },
2026-06-19T05:28:32.3676437Z             {
2026-06-19T05:28:32.3676588Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:28:32.3676695Z               "line": 70
2026-06-19T05:28:32.3676798Z             },
2026-06-19T05:28:32.3676899Z             {
2026-06-19T05:28:32.3677034Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3677146Z               "line": 1903
2026-06-19T05:28:32.3677250Z             },
2026-06-19T05:28:32.3677356Z             {
2026-06-19T05:28:32.3677484Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3677603Z               "line": 1929
2026-06-19T05:28:32.3677704Z             }
2026-06-19T05:28:32.3677809Z           ]
2026-06-19T05:28:32.3677908Z         },
2026-06-19T05:28:32.3678014Z         "int": {
2026-06-19T05:28:32.3678138Z           "complete": false,
2026-06-19T05:28:32.3678247Z           "evidence": []
2026-06-19T05:28:32.3678348Z         },
2026-06-19T05:28:32.3678452Z         "unit": {
2026-06-19T05:28:32.3678571Z           "complete": true,
2026-06-19T05:28:32.3678672Z           "evidence": [
2026-06-19T05:28:32.3678776Z             {
2026-06-19T05:28:32.3678935Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:28:32.3679119Z               "line": 288
2026-06-19T05:28:32.3679230Z             },
2026-06-19T05:28:32.3679335Z             {
2026-06-19T05:28:32.3679481Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:28:32.3679586Z               "line": 299
2026-06-19T05:28:32.3679694Z             },
2026-06-19T05:28:32.3679798Z             {
2026-06-19T05:28:32.3679931Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:28:32.3680051Z               "line": 325
2026-06-19T05:28:32.3680146Z             },
2026-06-19T05:28:32.3680251Z             {
2026-06-19T05:28:32.3680404Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:28:32.3680508Z               "line": 351
2026-06-19T05:28:32.3680610Z             }
2026-06-19T05:28:32.3680718Z           ]
2026-06-19T05:28:32.3680823Z         }
2026-06-19T05:28:32.3680924Z       }
2026-06-19T05:28:32.3681028Z     },
2026-06-19T05:28:32.3681124Z     {
2026-06-19T05:28:32.3681239Z       "id": "REQ-DAEMON-7",
2026-06-19T05:28:32.3682684Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-19T05:28:32.3682808Z       "requiredStages": [
2026-06-19T05:28:32.3682919Z         "impl",
2026-06-19T05:28:32.3683022Z         "unit"
2026-06-19T05:28:32.3683119Z       ],
2026-06-19T05:28:32.3683229Z       "stages": {
2026-06-19T05:28:32.3683332Z         "doc": {
2026-06-19T05:28:32.3683448Z           "complete": false,
2026-06-19T05:28:32.3683558Z           "evidence": []
2026-06-19T05:28:32.3683661Z         },
2026-06-19T05:28:32.3683767Z         "impl": {
2026-06-19T05:28:32.3683881Z           "complete": true,
2026-06-19T05:28:32.3684000Z           "evidence": [
2026-06-19T05:28:32.3684102Z             {
2026-06-19T05:28:32.3684253Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3684364Z               "line": 540
2026-06-19T05:28:32.3684464Z             },
2026-06-19T05:28:32.3684563Z             {
2026-06-19T05:28:32.3684717Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.3684948Z               "line": 610
2026-06-19T05:28:32.3685053Z             },
2026-06-19T05:28:32.3685161Z             {
2026-06-19T05:28:32.3685308Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:28:32.3685423Z               "line": 89
2026-06-19T05:28:32.3685527Z             },
2026-06-19T05:28:32.3685632Z             {
2026-06-19T05:28:32.3685861Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3685976Z               "line": 1850
2026-06-19T05:28:32.3686081Z             }
2026-06-19T05:28:32.3686185Z           ]
2026-06-19T05:28:32.3686282Z         },
2026-06-19T05:28:32.3686386Z         "int": {
2026-06-19T05:28:32.3686504Z           "complete": false,
2026-06-19T05:28:32.3686620Z           "evidence": []
2026-06-19T05:28:32.3686724Z         },
2026-06-19T05:28:32.3686829Z         "unit": {
2026-06-19T05:28:32.3686935Z           "complete": true,
2026-06-19T05:28:32.3687048Z           "evidence": [
2026-06-19T05:28:32.3687158Z             {
2026-06-19T05:28:32.3687308Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:28:32.3687430Z               "line": 314
2026-06-19T05:28:32.3687531Z             },
2026-06-19T05:28:32.3687636Z             {
2026-06-19T05:28:32.3687763Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3687868Z               "line": 7959
2026-06-19T05:28:32.3687983Z             }
2026-06-19T05:28:32.3688087Z           ]
2026-06-19T05:28:32.3688187Z         }
2026-06-19T05:28:32.3688288Z       }
2026-06-19T05:28:32.3688392Z     },
2026-06-19T05:28:32.3688492Z     {
2026-06-19T05:28:32.3688612Z       "id": "REQ-DAEMON-8",
2026-06-19T05:28:32.3689679Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-19T05:28:32.3689809Z       "requiredStages": [
2026-06-19T05:28:32.3689914Z         "impl",
2026-06-19T05:28:32.3690017Z         "unit"
2026-06-19T05:28:32.3690117Z       ],
2026-06-19T05:28:32.3690226Z       "stages": {
2026-06-19T05:28:32.3690330Z         "doc": {
2026-06-19T05:28:32.3690454Z           "complete": false,
2026-06-19T05:28:32.3690564Z           "evidence": []
2026-06-19T05:28:32.3690668Z         },
2026-06-19T05:28:32.3690758Z         "impl": {
2026-06-19T05:28:32.3690874Z           "complete": true,
2026-06-19T05:28:32.3690983Z           "evidence": [
2026-06-19T05:28:32.3691083Z             {
2026-06-19T05:28:32.3691236Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3691344Z               "line": 440
2026-06-19T05:28:32.3691451Z             },
2026-06-19T05:28:32.3691550Z             {
2026-06-19T05:28:32.3691698Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:28:32.3691804Z               "line": 56
2026-06-19T05:28:32.3691913Z             }
2026-06-19T05:28:32.3692018Z           ]
2026-06-19T05:28:32.3692119Z         },
2026-06-19T05:28:32.3692217Z         "int": {
2026-06-19T05:28:32.3692328Z           "complete": false,
2026-06-19T05:28:32.3692448Z           "evidence": []
2026-06-19T05:28:32.3692556Z         },
2026-06-19T05:28:32.3692648Z         "unit": {
2026-06-19T05:28:32.3692767Z           "complete": true,
2026-06-19T05:28:32.3692870Z           "evidence": [
2026-06-19T05:28:32.3692965Z             {
2026-06-19T05:28:32.3693117Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:28:32.3693234Z               "line": 288
2026-06-19T05:28:32.3693345Z             },
2026-06-19T05:28:32.3693435Z             {
2026-06-19T05:28:32.3693592Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-19T05:28:32.3693689Z               "line": 325
2026-06-19T05:28:32.3693794Z             }
2026-06-19T05:28:32.3693897Z           ]
2026-06-19T05:28:32.3694003Z         }
2026-06-19T05:28:32.3694113Z       }
2026-06-19T05:28:32.3694313Z     },
2026-06-19T05:28:32.3694441Z     {
2026-06-19T05:28:32.3694570Z       "id": "REQ-DAEMON-9",
2026-06-19T05:28:32.3700740Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-19T05:28:32.3701062Z       "requiredStages": [
2026-06-19T05:28:32.3701185Z         "impl",
2026-06-19T05:28:32.3701290Z         "unit"
2026-06-19T05:28:32.3701386Z       ],
2026-06-19T05:28:32.3701481Z       "stages": {
2026-06-19T05:28:32.3701590Z         "doc": {
2026-06-19T05:28:32.3701706Z           "complete": false,
2026-06-19T05:28:32.3701829Z           "evidence": []
2026-06-19T05:28:32.3701934Z         },
2026-06-19T05:28:32.3702044Z         "impl": {
2026-06-19T05:28:32.3702168Z           "complete": true,
2026-06-19T05:28:32.3702273Z           "evidence": [
2026-06-19T05:28:32.3702382Z             {
2026-06-19T05:28:32.3702539Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3702660Z               "line": 276
2026-06-19T05:28:32.3702759Z             },
2026-06-19T05:28:32.3702863Z             {
2026-06-19T05:28:32.3703017Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3703126Z               "line": 601
2026-06-19T05:28:32.3703227Z             },
2026-06-19T05:28:32.3703332Z             {
2026-06-19T05:28:32.3703492Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3703611Z               "line": 192
2026-06-19T05:28:32.3703714Z             },
2026-06-19T05:28:32.3703818Z             {
2026-06-19T05:28:32.3703963Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3704077Z               "line": 339
2026-06-19T05:28:32.3704181Z             },
2026-06-19T05:28:32.3704287Z             {
2026-06-19T05:28:32.3704434Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3704545Z               "line": 376
2026-06-19T05:28:32.3704644Z             },
2026-06-19T05:28:32.3704744Z             {
2026-06-19T05:28:32.3704878Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3704982Z               "line": 1958
2026-06-19T05:28:32.3705091Z             }
2026-06-19T05:28:32.3705198Z           ]
2026-06-19T05:28:32.3705302Z         },
2026-06-19T05:28:32.3705411Z         "int": {
2026-06-19T05:28:32.3705527Z           "complete": false,
2026-06-19T05:28:32.3705649Z           "evidence": []
2026-06-19T05:28:32.3705750Z         },
2026-06-19T05:28:32.3705866Z         "unit": {
2026-06-19T05:28:32.3705987Z           "complete": true,
2026-06-19T05:28:32.3706096Z           "evidence": [
2026-06-19T05:28:32.3706202Z             {
2026-06-19T05:28:32.3706352Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3706476Z               "line": 1083
2026-06-19T05:28:32.3706573Z             },
2026-06-19T05:28:32.3706671Z             {
2026-06-19T05:28:32.3706801Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3706911Z               "line": 10368
2026-06-19T05:28:32.3707019Z             }
2026-06-19T05:28:32.3707121Z           ]
2026-06-19T05:28:32.3707230Z         }
2026-06-19T05:28:32.3707329Z       }
2026-06-19T05:28:32.3707435Z     },
2026-06-19T05:28:32.3707539Z     {
2026-06-19T05:28:32.3707654Z       "id": "REQ-DOCS-1",
2026-06-19T05:28:32.3707868Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-19T05:28:32.3708098Z       "requiredStages": [
2026-06-19T05:28:32.3708201Z         "doc",
2026-06-19T05:28:32.3708307Z         "impl"
2026-06-19T05:28:32.3708409Z       ],
2026-06-19T05:28:32.3708512Z       "stages": {
2026-06-19T05:28:32.3708622Z         "doc": {
2026-06-19T05:28:32.3708742Z           "complete": true,
2026-06-19T05:28:32.3708926Z           "evidence": [
2026-06-19T05:28:32.3709370Z             {
2026-06-19T05:28:32.3709512Z               "path": "docs-site/src/index.md",
2026-06-19T05:28:32.3709617Z               "line": 50
2026-06-19T05:28:32.3709723Z             }
2026-06-19T05:28:32.3709827Z           ]
2026-06-19T05:28:32.3709932Z         },
2026-06-19T05:28:32.3710033Z         "impl": {
2026-06-19T05:28:32.3710156Z           "complete": true,
2026-06-19T05:28:32.3710261Z           "evidence": [
2026-06-19T05:28:32.3710367Z             {
2026-06-19T05:28:32.3710523Z               "path": ".github/workflows/docs-publish.yml",
2026-06-19T05:28:32.3710644Z               "line": 12
2026-06-19T05:28:32.3710742Z             },
2026-06-19T05:28:32.3710833Z             {
2026-06-19T05:28:32.3710968Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.3711081Z               "line": 14
2026-06-19T05:28:32.3711175Z             }
2026-06-19T05:28:32.3711281Z           ]
2026-06-19T05:28:32.3711384Z         },
2026-06-19T05:28:32.3711483Z         "int": {
2026-06-19T05:28:32.3711598Z           "complete": false,
2026-06-19T05:28:32.3711713Z           "evidence": []
2026-06-19T05:28:32.3711817Z         },
2026-06-19T05:28:32.3711922Z         "unit": {
2026-06-19T05:28:32.3712041Z           "complete": false,
2026-06-19T05:28:32.3712150Z           "evidence": []
2026-06-19T05:28:32.3712247Z         }
2026-06-19T05:28:32.3712347Z       }
2026-06-19T05:28:32.3712441Z     },
2026-06-19T05:28:32.3712543Z     {
2026-06-19T05:28:32.3712666Z       "id": "REQ-DOCS-2",
2026-06-19T05:28:32.3712857Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-19T05:28:32.3712985Z       "requiredStages": [
2026-06-19T05:28:32.3713095Z         "doc",
2026-06-19T05:28:32.3713196Z         "int"
2026-06-19T05:28:32.3713305Z       ],
2026-06-19T05:28:32.3713410Z       "stages": {
2026-06-19T05:28:32.3713521Z         "doc": {
2026-06-19T05:28:32.3713638Z           "complete": true,
2026-06-19T05:28:32.3713748Z           "evidence": [
2026-06-19T05:28:32.3713845Z             {
2026-06-19T05:28:32.3714052Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-19T05:28:32.3714167Z               "line": 3
2026-06-19T05:28:32.3714270Z             },
2026-06-19T05:28:32.3714373Z             {
2026-06-19T05:28:32.3714528Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-19T05:28:32.3714632Z               "line": 3
2026-06-19T05:28:32.3714741Z             },
2026-06-19T05:28:32.3714842Z             {
2026-06-19T05:28:32.3715008Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-19T05:28:32.3715114Z               "line": 3
2026-06-19T05:28:32.3715223Z             }
2026-06-19T05:28:32.3715318Z           ]
2026-06-19T05:28:32.3715414Z         },
2026-06-19T05:28:32.3715519Z         "impl": {
2026-06-19T05:28:32.3715638Z           "complete": false,
2026-06-19T05:28:32.3715754Z           "evidence": []
2026-06-19T05:28:32.3715843Z         },
2026-06-19T05:28:32.3715957Z         "int": {
2026-06-19T05:28:32.3716078Z           "complete": true,
2026-06-19T05:28:32.3716177Z           "evidence": [
2026-06-19T05:28:32.3716272Z             {
2026-06-19T05:28:32.3716426Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-19T05:28:32.3716539Z               "line": 14
2026-06-19T05:28:32.3716638Z             }
2026-06-19T05:28:32.3716743Z           ]
2026-06-19T05:28:32.3716841Z         },
2026-06-19T05:28:32.3716940Z         "unit": {
2026-06-19T05:28:32.3717055Z           "complete": false,
2026-06-19T05:28:32.3717152Z           "evidence": []
2026-06-19T05:28:32.3717366Z         }
2026-06-19T05:28:32.3717471Z       }
2026-06-19T05:28:32.3717565Z     },
2026-06-19T05:28:32.3717676Z     {
2026-06-19T05:28:32.3717790Z       "id": "REQ-DOCS-3",
2026-06-19T05:28:32.3718072Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-19T05:28:32.3718195Z       "requiredStages": [
2026-06-19T05:28:32.3718286Z         "doc"
2026-06-19T05:28:32.3718486Z       ],
2026-06-19T05:28:32.3718596Z       "stages": {
2026-06-19T05:28:32.3718696Z         "doc": {
2026-06-19T05:28:32.3718815Z           "complete": true,
2026-06-19T05:28:32.3718921Z           "evidence": [
2026-06-19T05:28:32.3719429Z             {
2026-06-19T05:28:32.3719582Z               "path": "docs-site/src/index.md",
2026-06-19T05:28:32.3719688Z               "line": 42
2026-06-19T05:28:32.3719791Z             }
2026-06-19T05:28:32.3719892Z           ]
2026-06-19T05:28:32.3719987Z         },
2026-06-19T05:28:32.3720087Z         "impl": {
2026-06-19T05:28:32.3720202Z           "complete": false,
2026-06-19T05:28:32.3720345Z           "evidence": []
2026-06-19T05:28:32.3720444Z         },
2026-06-19T05:28:32.3720550Z         "int": {
2026-06-19T05:28:32.3720664Z           "complete": false,
2026-06-19T05:28:32.3720773Z           "evidence": []
2026-06-19T05:28:32.3720870Z         },
2026-06-19T05:28:32.3720964Z         "unit": {
2026-06-19T05:28:32.3721074Z           "complete": false,
2026-06-19T05:28:32.3721189Z           "evidence": []
2026-06-19T05:28:32.3721284Z         }
2026-06-19T05:28:32.3721384Z       }
2026-06-19T05:28:32.3721470Z     },
2026-06-19T05:28:32.3721571Z     {
2026-06-19T05:28:32.3721674Z       "id": "REQ-DOCS-4",
2026-06-19T05:28:32.3721916Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-19T05:28:32.3722020Z       "requiredStages": [
2026-06-19T05:28:32.3722115Z         "doc",
2026-06-19T05:28:32.3722220Z         "impl",
2026-06-19T05:28:32.3722320Z         "unit"
2026-06-19T05:28:32.3722430Z       ],
2026-06-19T05:28:32.3722525Z       "stages": {
2026-06-19T05:28:32.3722634Z         "doc": {
2026-06-19T05:28:32.3722749Z           "complete": true,
2026-06-19T05:28:32.3722864Z           "evidence": [
2026-06-19T05:28:32.3722973Z             {
2026-06-19T05:28:32.3723108Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-19T05:28:32.3723212Z               "line": 35
2026-06-19T05:28:32.3723316Z             }
2026-06-19T05:28:32.3723427Z           ]
2026-06-19T05:28:32.3723526Z         },
2026-06-19T05:28:32.3723636Z         "impl": {
2026-06-19T05:28:32.3723752Z           "complete": true,
2026-06-19T05:28:32.3723860Z           "evidence": [
2026-06-19T05:28:32.3723960Z             {
2026-06-19T05:28:32.3724109Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.3724227Z               "line": 702
2026-06-19T05:28:32.3724323Z             },
2026-06-19T05:28:32.3724424Z             {
2026-06-19T05:28:32.3724565Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.3724670Z               "line": 15
2026-06-19T05:28:32.3724779Z             }
2026-06-19T05:28:32.3724882Z           ]
2026-06-19T05:28:32.3724982Z         },
2026-06-19T05:28:32.3725088Z         "int": {
2026-06-19T05:28:32.3725211Z           "complete": false,
2026-06-19T05:28:32.3725316Z           "evidence": []
2026-06-19T05:28:32.3725417Z         },
2026-06-19T05:28:32.3729242Z         "unit": {
2026-06-19T05:28:32.3729408Z           "complete": true,
2026-06-19T05:28:32.3729533Z           "evidence": [
2026-06-19T05:28:32.3729632Z             {
2026-06-19T05:28:32.3729801Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.3729924Z               "line": 1479
2026-06-19T05:28:32.3730013Z             }
2026-06-19T05:28:32.3730118Z           ]
2026-06-19T05:28:32.3730219Z         }
2026-06-19T05:28:32.3730318Z       }
2026-06-19T05:28:32.3730413Z     },
2026-06-19T05:28:32.3730515Z     {
2026-06-19T05:28:32.3730633Z       "id": "REQ-DOCS-5",
2026-06-19T05:28:32.3730886Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-19T05:28:32.3731182Z       "requiredStages": [
2026-06-19T05:28:32.3731277Z         "impl",
2026-06-19T05:28:32.3731372Z         "int"
2026-06-19T05:28:32.3731473Z       ],
2026-06-19T05:28:32.3731572Z       "stages": {
2026-06-19T05:28:32.3731672Z         "doc": {
2026-06-19T05:28:32.3731793Z           "complete": false,
2026-06-19T05:28:32.3732011Z           "evidence": []
2026-06-19T05:28:32.3732108Z         },
2026-06-19T05:28:32.3732210Z         "impl": {
2026-06-19T05:28:32.3732319Z           "complete": true,
2026-06-19T05:28:32.3732434Z           "evidence": [
2026-06-19T05:28:32.3732541Z             {
2026-06-19T05:28:32.3732708Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.3732824Z               "line": 703
2026-06-19T05:28:32.3732923Z             },
2026-06-19T05:28:32.3733023Z             {
2026-06-19T05:28:32.3733162Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.3733276Z               "line": 113
2026-06-19T05:28:32.3733387Z             }
2026-06-19T05:28:32.3733491Z           ]
2026-06-19T05:28:32.3733595Z         },
2026-06-19T05:28:32.3733696Z         "int": {
2026-06-19T05:28:32.3733820Z           "complete": true,
2026-06-19T05:28:32.3733929Z           "evidence": [
2026-06-19T05:28:32.3734030Z             {
2026-06-19T05:28:32.3734167Z               "path": ".github/workflows/ci.yml",
2026-06-19T05:28:32.3734273Z               "line": 126
2026-06-19T05:28:32.3734378Z             },
2026-06-19T05:28:32.3734478Z             {
2026-06-19T05:28:32.3734636Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.3734753Z               "line": 1516
2026-06-19T05:28:32.3734849Z             }
2026-06-19T05:28:32.3734956Z           ]
2026-06-19T05:28:32.3735054Z         },
2026-06-19T05:28:32.3735163Z         "unit": {
2026-06-19T05:28:32.3735282Z           "complete": false,
2026-06-19T05:28:32.3735395Z           "evidence": []
2026-06-19T05:28:32.3735490Z         }
2026-06-19T05:28:32.3735600Z       }
2026-06-19T05:28:32.3735705Z     },
2026-06-19T05:28:32.3735804Z     {
2026-06-19T05:28:32.3735915Z       "id": "REQ-DOCS-6",
2026-06-19T05:28:32.3736277Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-19T05:28:32.3736400Z       "requiredStages": [
2026-06-19T05:28:32.3736510Z         "impl",
2026-06-19T05:28:32.3736615Z         "unit",
2026-06-19T05:28:32.3736724Z         "int"
2026-06-19T05:28:32.3736825Z       ],
2026-06-19T05:28:32.3736935Z       "stages": {
2026-06-19T05:28:32.3737030Z         "doc": {
2026-06-19T05:28:32.3737150Z           "complete": true,
2026-06-19T05:28:32.3737255Z           "evidence": [
2026-06-19T05:28:32.3737359Z             {
2026-06-19T05:28:32.3737527Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-19T05:28:32.3737630Z               "line": 4
2026-06-19T05:28:32.3737725Z             }
2026-06-19T05:28:32.3737825Z           ]
2026-06-19T05:28:32.3737933Z         },
2026-06-19T05:28:32.3738042Z         "impl": {
2026-06-19T05:28:32.3738157Z           "complete": true,
2026-06-19T05:28:32.3738262Z           "evidence": [
2026-06-19T05:28:32.3738366Z             {
2026-06-19T05:28:32.3738505Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3738610Z               "line": 5109
2026-06-19T05:28:32.3738714Z             }
2026-06-19T05:28:32.3738811Z           ]
2026-06-19T05:28:32.3738915Z         },
2026-06-19T05:28:32.3739121Z         "int": {
2026-06-19T05:28:32.3739234Z           "complete": true,
2026-06-19T05:28:32.3739353Z           "evidence": [
2026-06-19T05:28:32.3739454Z             {
2026-06-19T05:28:32.3739611Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-19T05:28:32.3739711Z               "line": 39
2026-06-19T05:28:32.3739816Z             }
2026-06-19T05:28:32.3739916Z           ]
2026-06-19T05:28:32.3740017Z         },
2026-06-19T05:28:32.3740122Z         "unit": {
2026-06-19T05:28:32.3740337Z           "complete": true,
2026-06-19T05:28:32.3740442Z           "evidence": [
2026-06-19T05:28:32.3740545Z             {
2026-06-19T05:28:32.3740678Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3740784Z               "line": 10530
2026-06-19T05:28:32.3740879Z             }
2026-06-19T05:28:32.3740983Z           ]
2026-06-19T05:28:32.3741188Z         }
2026-06-19T05:28:32.3741288Z       }
2026-06-19T05:28:32.3741375Z     },
2026-06-19T05:28:32.3741475Z     {
2026-06-19T05:28:32.3741598Z       "id": "REQ-ELEVATE-1",
2026-06-19T05:28:32.3744799Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-19T05:28:32.3744971Z       "requiredStages": [
2026-06-19T05:28:32.3745080Z         "doc",
2026-06-19T05:28:32.3745177Z         "impl",
2026-06-19T05:28:32.3745286Z         "unit"
2026-06-19T05:28:32.3745381Z       ],
2026-06-19T05:28:32.3745482Z       "stages": {
2026-06-19T05:28:32.3745587Z         "doc": {
2026-06-19T05:28:32.3745695Z           "complete": true,
2026-06-19T05:28:32.3745804Z           "evidence": [
2026-06-19T05:28:32.3745913Z             {
2026-06-19T05:28:32.3746040Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.3746150Z               "line": 684
2026-06-19T05:28:32.3746251Z             }
2026-06-19T05:28:32.3746355Z           ]
2026-06-19T05:28:32.3746460Z         },
2026-06-19T05:28:32.3746565Z         "impl": {
2026-06-19T05:28:32.3746674Z           "complete": true,
2026-06-19T05:28:32.3746785Z           "evidence": [
2026-06-19T05:28:32.3746889Z             {
2026-06-19T05:28:32.3747027Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3747143Z               "line": 3448
2026-06-19T05:28:32.3747247Z             },
2026-06-19T05:28:32.3747352Z             {
2026-06-19T05:28:32.3747481Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3747595Z               "line": 3493
2026-06-19T05:28:32.3747695Z             },
2026-06-19T05:28:32.3747801Z             {
2026-06-19T05:28:32.3747928Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3748039Z               "line": 3555
2026-06-19T05:28:32.3748134Z             },
2026-06-19T05:28:32.3748233Z             {
2026-06-19T05:28:32.3748375Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.3748484Z               "line": 92
2026-06-19T05:28:32.3748588Z             },
2026-06-19T05:28:32.3748693Z             {
2026-06-19T05:28:32.3748841Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.3749037Z               "line": 148
2026-06-19T05:28:32.3749146Z             }
2026-06-19T05:28:32.3749255Z           ]
2026-06-19T05:28:32.3749357Z         },
2026-06-19T05:28:32.3749456Z         "int": {
2026-06-19T05:28:32.3749575Z           "complete": false,
2026-06-19T05:28:32.3749676Z           "evidence": []
2026-06-19T05:28:32.3749780Z         },
2026-06-19T05:28:32.3749880Z         "unit": {
2026-06-19T05:28:32.3750001Z           "complete": true,
2026-06-19T05:28:32.3750104Z           "evidence": [
2026-06-19T05:28:32.3750204Z             {
2026-06-19T05:28:32.3750471Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.3750582Z               "line": 442
2026-06-19T05:28:32.3750687Z             },
2026-06-19T05:28:32.3750786Z             {
2026-06-19T05:28:32.3750935Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.3751048Z               "line": 460
2026-06-19T05:28:32.3751228Z             }
2026-06-19T05:28:32.3751330Z           ]
2026-06-19T05:28:32.3751429Z         }
2026-06-19T05:28:32.3751529Z       }
2026-06-19T05:28:32.3751620Z     },
2026-06-19T05:28:32.3751725Z     {
2026-06-19T05:28:32.3751863Z       "id": "REQ-ENDPOINT-LIST-MERGE-LOCAL",
2026-06-19T05:28:32.3753676Z       "title": "`spt endpoint list` always merges this node's LOCAL (unadvertised) perches into the view; the `--local` flag is REMOVED (operator decision 2026-06-17). Rationale: `spt whoami` is a thin alias of `endpoint list` — a just-online agent running `whoami` must see its OWN perch, or it gets an omitted-self view ('chaos'). FIX: drop the `--local` flag + its `--detail` conflict test + the v0.10.0 REQ-PICKER-5 hint line (cli.rs:1678) + cmd_list_local; the bare list merges local perches into the subnet view; fix the whoami alias path accordingly. Run `cargo run -p xtask -- gen` (docs-drift, DEFAULT target). (v0.12.1)",
2026-06-19T05:28:32.3753810Z       "requiredStages": [
2026-06-19T05:28:32.3753920Z         "doc",
2026-06-19T05:28:32.3754024Z         "impl",
2026-06-19T05:28:32.3754129Z         "unit"
2026-06-19T05:28:32.3754225Z       ],
2026-06-19T05:28:32.3754325Z       "stages": {
2026-06-19T05:28:32.3754429Z         "doc": {
2026-06-19T05:28:32.3754549Z           "complete": true,
2026-06-19T05:28:32.3754658Z           "evidence": [
2026-06-19T05:28:32.3754754Z             {
2026-06-19T05:28:32.3754883Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.3754987Z               "line": 708
2026-06-19T05:28:32.3755088Z             }
2026-06-19T05:28:32.3755188Z           ]
2026-06-19T05:28:32.3755288Z         },
2026-06-19T05:28:32.3755398Z         "impl": {
2026-06-19T05:28:32.3755508Z           "complete": true,
2026-06-19T05:28:32.3755612Z           "evidence": [
2026-06-19T05:28:32.3755718Z             {
2026-06-19T05:28:32.3755851Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3755965Z               "line": 1614
2026-06-19T05:28:32.3756189Z             },
2026-06-19T05:28:32.3756297Z             {
2026-06-19T05:28:32.3756431Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3756548Z               "line": 3001
2026-06-19T05:28:32.3756648Z             },
2026-06-19T05:28:32.3756759Z             {
2026-06-19T05:28:32.3756877Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3757001Z               "line": 3010
2026-06-19T05:28:32.3757088Z             }
2026-06-19T05:28:32.3757187Z           ]
2026-06-19T05:28:32.3757291Z         },
2026-06-19T05:28:32.3757398Z         "int": {
2026-06-19T05:28:32.3757516Z           "complete": false,
2026-06-19T05:28:32.3757616Z           "evidence": []
2026-06-19T05:28:32.3757722Z         },
2026-06-19T05:28:32.3757822Z         "unit": {
2026-06-19T05:28:32.3757940Z           "complete": true,
2026-06-19T05:28:32.3758051Z           "evidence": [
2026-06-19T05:28:32.3758150Z             {
2026-06-19T05:28:32.3758280Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3758394Z               "line": 7807
2026-06-19T05:28:32.3758503Z             },
2026-06-19T05:28:32.3758600Z             {
2026-06-19T05:28:32.3758736Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3758850Z               "line": 7848
2026-06-19T05:28:32.3759026Z             }
2026-06-19T05:28:32.3759143Z           ]
2026-06-19T05:28:32.3759244Z         }
2026-06-19T05:28:32.3759344Z       }
2026-06-19T05:28:32.3759453Z     },
2026-06-19T05:28:32.3759558Z     {
2026-06-19T05:28:32.3759692Z       "id": "REQ-ENDPOINT-PURGE",
2026-06-19T05:28:32.3764408Z       "title": "`spt endpoint purge <id>` fully removes an endpoint AND every record keyed on it — the formal teardown devs/CI need for clean test setup/reset. NOT consent-gated (a local dev/test op — no peer consent). OFFLINE-ONLY: refuses while the endpoint is online / daemon-hosted (deleting records out from under a live host risks the daemon re-creating or re-hosting mid-purge); `--force` STOPS it first (endpoint stop → wait for the daemon reconcile to un-host + reap the Psyche) THEN purges. Confirms interactively unless `--yes` (the CI path). Refuses purging the CALLER's OWN running id. All LOCAL — purge reaches only THIS node's records; a remote endpoint's records can't be touched, and its subnet-registry rows decay via the epoch-lease eviction (REQ-HAZARD-REGISTRY-DECAY). Removes: (1) the perch dir TREE recursively — owlery/<id>/ incl every nested {id}-psyche / {id}-w* / shells child (info.json, ready marker, sessions.log ledger, spool.db, inbox, .idle/.more-done sentinels, auth token); (2) the registry address (registry::unregister_address); (3) the context store — ContextStore::remove_endpoint(id): the a-<id> branch+worktree + the <id>/ rows from every p-<project> branch (the same fn `fork --delete-source` already uses); (4) node-local trust rows keyed on the id — access.json + visibility.json. Reuse-heavy: it is `fork --delete-source` generalized (recursive perch remove + unregister + remove_endpoint) + the trust-record cleanup; `endpoint rename` already enumerates the same record set + uses the same offline-only gate. (v0.12.0)",
2026-06-19T05:28:32.3764786Z       "requiredStages": [
2026-06-19T05:28:32.3764880Z         "doc",
2026-06-19T05:28:32.3764985Z         "impl",
2026-06-19T05:28:32.3765091Z         "unit",
2026-06-19T05:28:32.3765180Z         "int"
2026-06-19T05:28:32.3765285Z       ],
2026-06-19T05:28:32.3765396Z       "stages": {
2026-06-19T05:28:32.3765495Z         "doc": {
2026-06-19T05:28:32.3765595Z           "complete": true,
2026-06-19T05:28:32.3765701Z           "evidence": [
2026-06-19T05:28:32.3765805Z             {
2026-06-19T05:28:32.3765929Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.3766063Z               "line": 163
2026-06-19T05:28:32.3766158Z             }
2026-06-19T05:28:32.3766263Z           ]
2026-06-19T05:28:32.3766364Z         },
2026-06-19T05:28:32.3766467Z         "impl": {
2026-06-19T05:28:32.3766588Z           "complete": true,
2026-06-19T05:28:32.3766698Z           "evidence": [
2026-06-19T05:28:32.3766800Z             {
2026-06-19T05:28:32.3766963Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:28:32.3767075Z               "line": 105
2026-06-19T05:28:32.3767174Z             },
2026-06-19T05:28:32.3767284Z             {
2026-06-19T05:28:32.3767418Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3767528Z               "line": 7076
2026-06-19T05:28:32.3767624Z             }
2026-06-19T05:28:32.3767724Z           ]
2026-06-19T05:28:32.3767828Z         },
2026-06-19T05:28:32.3767919Z         "int": {
2026-06-19T05:28:32.3768034Z           "complete": true,
2026-06-19T05:28:32.3768147Z           "evidence": [
2026-06-19T05:28:32.3768248Z             {
2026-06-19T05:28:32.3768391Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3768496Z               "line": 7241
2026-06-19T05:28:32.3768597Z             }
2026-06-19T05:28:32.3768695Z           ]
2026-06-19T05:28:32.3768796Z         },
2026-06-19T05:28:32.3768897Z         "unit": {
2026-06-19T05:28:32.3769116Z           "complete": true,
2026-06-19T05:28:32.3769236Z           "evidence": [
2026-06-19T05:28:32.3769334Z             {
2026-06-19T05:28:32.3769462Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3769568Z               "line": 7212
2026-06-19T05:28:32.3769670Z             }
2026-06-19T05:28:32.3769774Z           ]
2026-06-19T05:28:32.3769871Z         }
2026-06-19T05:28:32.3769971Z       }
2026-06-19T05:28:32.3770070Z     },
2026-06-19T05:28:32.3770167Z     {
2026-06-19T05:28:32.3770295Z       "id": "REQ-ENDPOINT-STOP-OFFLINE",
2026-06-19T05:28:32.3771644Z       "title": "H3: `spt endpoint stop <id>` marks the endpoint OFFLINE (alive=false), not merely de-readied. cmd_stop (cli.rs:2994-3010) removes the ready marker + unregisters the address but does NOT set status offline, so a stopped daemon-hosted endpoint still reports alive=true (status=online latch). FIX: add set_status(perch, STATUS_OFFLINE) to cmd_stop — folds with B2 (same setter). Unit: stop → is_perch_alive=false / alive=false. (v0.12.0)",
2026-06-19T05:28:32.3771959Z       "requiredStages": [
2026-06-19T05:28:32.3772065Z         "impl",
2026-06-19T05:28:32.3772169Z         "unit"
2026-06-19T05:28:32.3772268Z       ],
2026-06-19T05:28:32.3772368Z       "stages": {
2026-06-19T05:28:32.3772474Z         "doc": {
2026-06-19T05:28:32.3772587Z           "complete": false,
2026-06-19T05:28:32.3772707Z           "evidence": []
2026-06-19T05:28:32.3772793Z         },
2026-06-19T05:28:32.3772902Z         "impl": {
2026-06-19T05:28:32.3773007Z           "complete": true,
2026-06-19T05:28:32.3773117Z           "evidence": [
2026-06-19T05:28:32.3773221Z             {
2026-06-19T05:28:32.3773356Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3773465Z               "line": 3041
2026-06-19T05:28:32.3773564Z             }
2026-06-19T05:28:32.3773666Z           ]
2026-06-19T05:28:32.3773765Z         },
2026-06-19T05:28:32.3773865Z         "int": {
2026-06-19T05:28:32.3773986Z           "complete": false,
2026-06-19T05:28:32.3774103Z           "evidence": []
2026-06-19T05:28:32.3774208Z         },
2026-06-19T05:28:32.3774315Z         "unit": {
2026-06-19T05:28:32.3774427Z           "complete": true,
2026-06-19T05:28:32.3774536Z           "evidence": [
2026-06-19T05:28:32.3774637Z             {
2026-06-19T05:28:32.3774777Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3774877Z               "line": 7188
2026-06-19T05:28:32.3774982Z             }
2026-06-19T05:28:32.3775082Z           ]
2026-06-19T05:28:32.3775182Z         }
2026-06-19T05:28:32.3775278Z       }
2026-06-19T05:28:32.3775374Z     },
2026-06-19T05:28:32.3775473Z     {
2026-06-19T05:28:32.3775589Z       "id": "REQ-EP-1",
2026-06-19T05:28:32.3775745Z       "title": "Day-one endpoint types; open type system",
2026-06-19T05:28:32.3775855Z       "requiredStages": [
2026-06-19T05:28:32.3775956Z         "impl",
2026-06-19T05:28:32.3776060Z         "unit"
2026-06-19T05:28:32.3776165Z       ],
2026-06-19T05:28:32.3776275Z       "stages": {
2026-06-19T05:28:32.3776384Z         "doc": {
2026-06-19T05:28:32.3776504Z           "complete": false,
2026-06-19T05:28:32.3776618Z           "evidence": []
2026-06-19T05:28:32.3776723Z         },
2026-06-19T05:28:32.3776814Z         "impl": {
2026-06-19T05:28:32.3776933Z           "complete": true,
2026-06-19T05:28:32.3777042Z           "evidence": [
2026-06-19T05:28:32.3777143Z             {
2026-06-19T05:28:32.3777300Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:28:32.3777413Z               "line": 77
2026-06-19T05:28:32.3777523Z             },
2026-06-19T05:28:32.3777626Z             {
2026-06-19T05:28:32.3777773Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:28:32.3777898Z               "line": 94
2026-06-19T05:28:32.3778002Z             }
2026-06-19T05:28:32.3778097Z           ]
2026-06-19T05:28:32.3778203Z         },
2026-06-19T05:28:32.3778303Z         "int": {
2026-06-19T05:28:32.3778417Z           "complete": false,
2026-06-19T05:28:32.3778537Z           "evidence": []
2026-06-19T05:28:32.3778641Z         },
2026-06-19T05:28:32.3778746Z         "unit": {
2026-06-19T05:28:32.3778866Z           "complete": true,
2026-06-19T05:28:32.3779056Z           "evidence": [
2026-06-19T05:28:32.3779166Z             {
2026-06-19T05:28:32.3779313Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:28:32.3779438Z               "line": 161
2026-06-19T05:28:32.3779547Z             },
2026-06-19T05:28:32.3779642Z             {
2026-06-19T05:28:32.3779796Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:28:32.3779904Z               "line": 178
2026-06-19T05:28:32.3780108Z             }
2026-06-19T05:28:32.3780212Z           ]
2026-06-19T05:28:32.3780311Z         }
2026-06-19T05:28:32.3780411Z       }
2026-06-19T05:28:32.3780503Z     },
2026-06-19T05:28:32.3780606Z     {
2026-06-19T05:28:32.3780722Z       "id": "REQ-EP-2",
2026-06-19T05:28:32.3780921Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-19T05:28:32.3781161Z       "requiredStages": [
2026-06-19T05:28:32.3781269Z         "impl",
2026-06-19T05:28:32.3781375Z         "unit"
2026-06-19T05:28:32.3781474Z       ],
2026-06-19T05:28:32.3781579Z       "stages": {
2026-06-19T05:28:32.3781681Z         "doc": {
2026-06-19T05:28:32.3781804Z           "complete": false,
2026-06-19T05:28:32.3781909Z           "evidence": []
2026-06-19T05:28:32.3782015Z         },
2026-06-19T05:28:32.3782122Z         "impl": {
2026-06-19T05:28:32.3782233Z           "complete": true,
2026-06-19T05:28:32.3782339Z           "evidence": [
2026-06-19T05:28:32.3782433Z             {
2026-06-19T05:28:32.3782577Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:28:32.3782697Z               "line": 114
2026-06-19T05:28:32.3782799Z             },
2026-06-19T05:28:32.3782904Z             {
2026-06-19T05:28:32.3783049Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:28:32.3783171Z               "line": 131
2026-06-19T05:28:32.3783276Z             },
2026-06-19T05:28:32.3783382Z             {
2026-06-19T05:28:32.3783528Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:28:32.3783635Z               "line": 138
2026-06-19T05:28:32.3783734Z             }
2026-06-19T05:28:32.3783838Z           ]
2026-06-19T05:28:32.3783945Z         },
2026-06-19T05:28:32.3784049Z         "int": {
2026-06-19T05:28:32.3784163Z           "complete": false,
2026-06-19T05:28:32.3784278Z           "evidence": []
2026-06-19T05:28:32.3784383Z         },
2026-06-19T05:28:32.3784487Z         "unit": {
2026-06-19T05:28:32.3784598Z           "complete": true,
2026-06-19T05:28:32.3784716Z           "evidence": [
2026-06-19T05:28:32.3784816Z             {
2026-06-19T05:28:32.3784969Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:28:32.3785068Z               "line": 190
2026-06-19T05:28:32.3785177Z             },
2026-06-19T05:28:32.3785277Z             {
2026-06-19T05:28:32.3785418Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:28:32.3785533Z               "line": 208
2026-06-19T05:28:32.3785629Z             },
2026-06-19T05:28:32.3785724Z             {
2026-06-19T05:28:32.3785872Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-19T05:28:32.3785981Z               "line": 221
2026-06-19T05:28:32.3786085Z             }
2026-06-19T05:28:32.3786187Z           ]
2026-06-19T05:28:32.3786291Z         }
2026-06-19T05:28:32.3786390Z       }
2026-06-19T05:28:32.3786488Z     },
2026-06-19T05:28:32.3786587Z     {
2026-06-19T05:28:32.3786705Z       "id": "REQ-EP-3",
2026-06-19T05:28:32.3786925Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-19T05:28:32.3787054Z       "requiredStages": [
2026-06-19T05:28:32.3787160Z         "impl",
2026-06-19T05:28:32.3787254Z         "unit"
2026-06-19T05:28:32.3787359Z       ],
2026-06-19T05:28:32.3787460Z       "stages": {
2026-06-19T05:28:32.3787569Z         "doc": {
2026-06-19T05:28:32.3787689Z           "complete": false,
2026-06-19T05:28:32.3787804Z           "evidence": []
2026-06-19T05:28:32.3787912Z         },
2026-06-19T05:28:32.3788016Z         "impl": {
2026-06-19T05:28:32.3788135Z           "complete": true,
2026-06-19T05:28:32.3788248Z           "evidence": [
2026-06-19T05:28:32.3788352Z             {
2026-06-19T05:28:32.3788506Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:28:32.3788614Z               "line": 31
2026-06-19T05:28:32.3788711Z             },
2026-06-19T05:28:32.3788801Z             {
2026-06-19T05:28:32.3789035Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:28:32.3789196Z               "line": 49
2026-06-19T05:28:32.3789492Z             }
2026-06-19T05:28:32.3789621Z           ]
2026-06-19T05:28:32.3789721Z         },
2026-06-19T05:28:32.3789816Z         "int": {
2026-06-19T05:28:32.3789931Z           "complete": false,
2026-06-19T05:28:32.3790079Z           "evidence": []
2026-06-19T05:28:32.3790179Z         },
2026-06-19T05:28:32.3790280Z         "unit": {
2026-06-19T05:28:32.3790502Z           "complete": true,
2026-06-19T05:28:32.3790611Z           "evidence": [
2026-06-19T05:28:32.3790720Z             {
2026-06-19T05:28:32.3790866Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:28:32.3790971Z               "line": 156
2026-06-19T05:28:32.3791073Z             },
2026-06-19T05:28:32.3791176Z             {
2026-06-19T05:28:32.3791330Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:28:32.3791448Z               "line": 164
2026-06-19T05:28:32.3791543Z             },
2026-06-19T05:28:32.3791644Z             {
2026-06-19T05:28:32.3791796Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:28:32.3791921Z               "line": 177
2026-06-19T05:28:32.3792020Z             },
2026-06-19T05:28:32.3792125Z             {
2026-06-19T05:28:32.3792270Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:28:32.3792374Z               "line": 200
2026-06-19T05:28:32.3792464Z             },
2026-06-19T05:28:32.3792579Z             {
2026-06-19T05:28:32.3792717Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:28:32.3792827Z               "line": 216
2026-06-19T05:28:32.3792928Z             },
2026-06-19T05:28:32.3793021Z             {
2026-06-19T05:28:32.3793166Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-19T05:28:32.3793275Z               "line": 233
2026-06-19T05:28:32.3793388Z             }
2026-06-19T05:28:32.3793483Z           ]
2026-06-19T05:28:32.3793589Z         }
2026-06-19T05:28:32.3793697Z       }
2026-06-19T05:28:32.3793788Z     },
2026-06-19T05:28:32.3793894Z     {
2026-06-19T05:28:32.3793998Z       "id": "REQ-EP-4",
2026-06-19T05:28:32.3794181Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-19T05:28:32.3794295Z       "requiredStages": [
2026-06-19T05:28:32.3794403Z         "impl",
2026-06-19T05:28:32.3794514Z         "unit"
2026-06-19T05:28:32.3794614Z       ],
2026-06-19T05:28:32.3794723Z       "stages": {
2026-06-19T05:28:32.3794829Z         "doc": {
2026-06-19T05:28:32.3794943Z           "complete": false,
2026-06-19T05:28:32.3795043Z           "evidence": []
2026-06-19T05:28:32.3795154Z         },
2026-06-19T05:28:32.3795257Z         "impl": {
2026-06-19T05:28:32.3795372Z           "complete": true,
2026-06-19T05:28:32.3795483Z           "evidence": [
2026-06-19T05:28:32.3795571Z             {
2026-06-19T05:28:32.3795724Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.3795832Z               "line": 718
2026-06-19T05:28:32.3795941Z             },
2026-06-19T05:28:32.3796045Z             {
2026-06-19T05:28:32.3796189Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.3796307Z               "line": 1079
2026-06-19T05:28:32.3796408Z             },
2026-06-19T05:28:32.3796509Z             {
2026-06-19T05:28:32.3796655Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3796775Z               "line": 1434
2026-06-19T05:28:32.3796879Z             },
2026-06-19T05:28:32.3796990Z             {
2026-06-19T05:28:32.3797138Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:28:32.3797251Z               "line": 118
2026-06-19T05:28:32.3797358Z             },
2026-06-19T05:28:32.3797461Z             {
2026-06-19T05:28:32.3797604Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:28:32.3797724Z               "line": 651
2026-06-19T05:28:32.3797824Z             },
2026-06-19T05:28:32.3797929Z             {
2026-06-19T05:28:32.3798067Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:28:32.3798177Z               "line": 788
2026-06-19T05:28:32.3798350Z             },
2026-06-19T05:28:32.3798453Z             {
2026-06-19T05:28:32.3798609Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3798718Z               "line": 271
2026-06-19T05:28:32.3798827Z             },
2026-06-19T05:28:32.3798927Z             {
2026-06-19T05:28:32.3799188Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3799399Z               "line": 458
2026-06-19T05:28:32.3799498Z             },
2026-06-19T05:28:32.3799600Z             {
2026-06-19T05:28:32.3799733Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3799857Z               "line": 1246
2026-06-19T05:28:32.3799948Z             }
2026-06-19T05:28:32.3800047Z           ]
2026-06-19T05:28:32.3800152Z         },
2026-06-19T05:28:32.3800253Z         "int": {
2026-06-19T05:28:32.3800376Z           "complete": false,
2026-06-19T05:28:32.3800476Z           "evidence": []
2026-06-19T05:28:32.3800582Z         },
2026-06-19T05:28:32.3800691Z         "unit": {
2026-06-19T05:28:32.3800816Z           "complete": true,
2026-06-19T05:28:32.3800921Z           "evidence": [
2026-06-19T05:28:32.3801020Z             {
2026-06-19T05:28:32.3801162Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:28:32.3801266Z               "line": 879
2026-06-19T05:28:32.3801370Z             },
2026-06-19T05:28:32.3801479Z             {
2026-06-19T05:28:32.3801642Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-19T05:28:32.3801746Z               "line": 76
2026-06-19T05:28:32.3801852Z             },
2026-06-19T05:28:32.3801957Z             {
2026-06-19T05:28:32.3802104Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-19T05:28:32.3802214Z               "line": 147
2026-06-19T05:28:32.3802305Z             }
2026-06-19T05:28:32.3802409Z           ]
2026-06-19T05:28:32.3802510Z         }
2026-06-19T05:28:32.3802609Z       }
2026-06-19T05:28:32.3802709Z     },
2026-06-19T05:28:32.3802810Z     {
2026-06-19T05:28:32.3802924Z       "id": "REQ-EP-5",
2026-06-19T05:28:32.3803621Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-19T05:28:32.3803741Z       "requiredStages": [
2026-06-19T05:28:32.3803840Z         "impl",
2026-06-19T05:28:32.3803948Z         "unit",
2026-06-19T05:28:32.3804048Z         "int"
2026-06-19T05:28:32.3804149Z       ],
2026-06-19T05:28:32.3804258Z       "stages": {
2026-06-19T05:28:32.3804363Z         "doc": {
2026-06-19T05:28:32.3804487Z           "complete": false,
2026-06-19T05:28:32.3804601Z           "evidence": []
2026-06-19T05:28:32.3804702Z         },
2026-06-19T05:28:32.3804811Z         "impl": {
2026-06-19T05:28:32.3804920Z           "complete": true,
2026-06-19T05:28:32.3805031Z           "evidence": [
2026-06-19T05:28:32.3805131Z             {
2026-06-19T05:28:32.3805293Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.3805413Z               "line": 367
2026-06-19T05:28:32.3805513Z             },
2026-06-19T05:28:32.3805612Z             {
2026-06-19T05:28:32.3805770Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:28:32.3805884Z               "line": 18
2026-06-19T05:28:32.3805976Z             },
2026-06-19T05:28:32.3806094Z             {
2026-06-19T05:28:32.3806249Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:28:32.3806360Z               "line": 63
2026-06-19T05:28:32.3806458Z             },
2026-06-19T05:28:32.3806562Z             {
2026-06-19T05:28:32.3806716Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:28:32.3806829Z               "line": 92
2026-06-19T05:28:32.3806935Z             },
2026-06-19T05:28:32.3807035Z             {
2026-06-19T05:28:32.3807182Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:28:32.3807298Z               "line": 167
2026-06-19T05:28:32.3807506Z             },
2026-06-19T05:28:32.3807613Z             {
2026-06-19T05:28:32.3807759Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:28:32.3807864Z               "line": 179
2026-06-19T05:28:32.3807961Z             },
2026-06-19T05:28:32.3808065Z             {
2026-06-19T05:28:32.3808213Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.3808394Z               "line": 114
2026-06-19T05:28:32.3808499Z             },
2026-06-19T05:28:32.3808604Z             {
2026-06-19T05:28:32.3808756Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.3808872Z               "line": 22
2026-06-19T05:28:32.3809046Z             },
2026-06-19T05:28:32.3809160Z             {
2026-06-19T05:28:32.3809306Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.3809420Z               "line": 145
2026-06-19T05:28:32.3809535Z             },
2026-06-19T05:28:32.3809640Z             {
2026-06-19T05:28:32.3809831Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.3809969Z               "line": 174
2026-06-19T05:28:32.3810073Z             },
2026-06-19T05:28:32.3810170Z             {
2026-06-19T05:28:32.3810321Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.3810441Z               "line": 196
2026-06-19T05:28:32.3810546Z             },
2026-06-19T05:28:32.3810645Z             {
2026-06-19T05:28:32.3810790Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.3810903Z               "line": 221
2026-06-19T05:28:32.3811003Z             },
2026-06-19T05:28:32.3811105Z             {
2026-06-19T05:28:32.3811251Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.3811356Z               "line": 247
2026-06-19T05:28:32.3811458Z             },
2026-06-19T05:28:32.3811561Z             {
2026-06-19T05:28:32.3811708Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.3811826Z               "line": 270
2026-06-19T05:28:32.3811935Z             },
2026-06-19T05:28:32.3812034Z             {
2026-06-19T05:28:32.3812183Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3812291Z               "line": 100
2026-06-19T05:28:32.3812393Z             },
2026-06-19T05:28:32.3812498Z             {
2026-06-19T05:28:32.3812635Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3812736Z               "line": 5925
2026-06-19T05:28:32.3812831Z             },
2026-06-19T05:28:32.3812935Z             {
2026-06-19T05:28:32.3813065Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3813179Z               "line": 6059
2026-06-19T05:28:32.3813284Z             },
2026-06-19T05:28:32.3813394Z             {
2026-06-19T05:28:32.3813518Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3813637Z               "line": 6225
2026-06-19T05:28:32.3813742Z             },
2026-06-19T05:28:32.3813847Z             {
2026-06-19T05:28:32.3813981Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3814090Z               "line": 6753
2026-06-19T05:28:32.3814200Z             }
2026-06-19T05:28:32.3814301Z           ]
2026-06-19T05:28:32.3814405Z         },
2026-06-19T05:28:32.3814503Z         "int": {
2026-06-19T05:28:32.3814613Z           "complete": true,
2026-06-19T05:28:32.3814724Z           "evidence": [
2026-06-19T05:28:32.3814832Z             {
2026-06-19T05:28:32.3814996Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-19T05:28:32.3815109Z               "line": 16
2026-06-19T05:28:32.3815209Z             },
2026-06-19T05:28:32.3815310Z             {
2026-06-19T05:28:32.3815448Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-19T05:28:32.3815552Z               "line": 15
2026-06-19T05:28:32.3815658Z             }
2026-06-19T05:28:32.3815767Z           ]
2026-06-19T05:28:32.3815862Z         },
2026-06-19T05:28:32.3815973Z         "unit": {
2026-06-19T05:28:32.3816087Z           "complete": true,
2026-06-19T05:28:32.3816321Z           "evidence": [
2026-06-19T05:28:32.3818630Z             {
2026-06-19T05:28:32.3818836Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:28:32.3819040Z               "line": 246
2026-06-19T05:28:32.3819155Z             },
2026-06-19T05:28:32.3819258Z             {
2026-06-19T05:28:32.3819422Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:28:32.3819677Z               "line": 306
2026-06-19T05:28:32.3819778Z             },
2026-06-19T05:28:32.3819881Z             {
2026-06-19T05:28:32.3820028Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-19T05:28:32.3820138Z               "line": 363
2026-06-19T05:28:32.3820242Z             },
2026-06-19T05:28:32.3820337Z             {
2026-06-19T05:28:32.3820481Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.3820585Z               "line": 286
2026-06-19T05:28:32.3820686Z             },
2026-06-19T05:28:32.3820791Z             {
2026-06-19T05:28:32.3820948Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.3821049Z               "line": 338
2026-06-19T05:28:32.3821139Z             },
2026-06-19T05:28:32.3821244Z             {
2026-06-19T05:28:32.3821388Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3821491Z               "line": 779
2026-06-19T05:28:32.3821601Z             },
2026-06-19T05:28:32.3821703Z             {
2026-06-19T05:28:32.3821835Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3821941Z               "line": 8556
2026-06-19T05:28:32.3822046Z             },
2026-06-19T05:28:32.3822145Z             {
2026-06-19T05:28:32.3822277Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3822386Z               "line": 8709
2026-06-19T05:28:32.3822480Z             },
2026-06-19T05:28:32.3822580Z             {
2026-06-19T05:28:32.3822710Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3822819Z               "line": 9298
2026-06-19T05:28:32.3822924Z             },
2026-06-19T05:28:32.3823029Z             {
2026-06-19T05:28:32.3823157Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3823263Z               "line": 9414
2026-06-19T05:28:32.3823363Z             }
2026-06-19T05:28:32.3823462Z           ]
2026-06-19T05:28:32.3823563Z         }
2026-06-19T05:28:32.3823663Z       }
2026-06-19T05:28:32.3823768Z     },
2026-06-19T05:28:32.3823858Z     {
2026-06-19T05:28:32.3823973Z       "id": "REQ-EP-6",
2026-06-19T05:28:32.3825469Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-19T05:28:32.3825603Z       "requiredStages": [
2026-06-19T05:28:32.3825707Z         "doc",
2026-06-19T05:28:32.3825808Z         "impl",
2026-06-19T05:28:32.3825913Z         "unit"
2026-06-19T05:28:32.3826008Z       ],
2026-06-19T05:28:32.3826117Z       "stages": {
2026-06-19T05:28:32.3826223Z         "doc": {
2026-06-19T05:28:32.3826341Z           "complete": true,
2026-06-19T05:28:32.3826462Z           "evidence": [
2026-06-19T05:28:32.3826566Z             {
2026-06-19T05:28:32.3826685Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.3826800Z               "line": 227
2026-06-19T05:28:32.3826900Z             }
2026-06-19T05:28:32.3827009Z           ]
2026-06-19T05:28:32.3827111Z         },
2026-06-19T05:28:32.3827209Z         "impl": {
2026-06-19T05:28:32.3827332Z           "complete": true,
2026-06-19T05:28:32.3827442Z           "evidence": [
2026-06-19T05:28:32.3827546Z             {
2026-06-19T05:28:32.3827692Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.3827912Z               "line": 203
2026-06-19T05:28:32.3828021Z             }
2026-06-19T05:28:32.3828123Z           ]
2026-06-19T05:28:32.3828232Z         },
2026-06-19T05:28:32.3828326Z         "int": {
2026-06-19T05:28:32.3828447Z           "complete": true,
2026-06-19T05:28:32.3828551Z           "evidence": [
2026-06-19T05:28:32.3828641Z             {
2026-06-19T05:28:32.3828870Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-19T05:28:32.3829071Z               "line": 18
2026-06-19T05:28:32.3829176Z             }
2026-06-19T05:28:32.3829275Z           ]
2026-06-19T05:28:32.3829381Z         },
2026-06-19T05:28:32.3829485Z         "unit": {
2026-06-19T05:28:32.3829600Z           "complete": true,
2026-06-19T05:28:32.3829706Z           "evidence": [
2026-06-19T05:28:32.3829800Z             {
2026-06-19T05:28:32.3829949Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.3830063Z               "line": 555
2026-06-19T05:28:32.3830161Z             },
2026-06-19T05:28:32.3830266Z             {
2026-06-19T05:28:32.3830413Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.3830521Z               "line": 787
2026-06-19T05:28:32.3830626Z             }
2026-06-19T05:28:32.3830727Z           ]
2026-06-19T05:28:32.3830816Z         }
2026-06-19T05:28:32.3830917Z       }
2026-06-19T05:28:32.3831018Z     },
2026-06-19T05:28:32.3831117Z     {
2026-06-19T05:28:32.3831222Z       "id": "REQ-EP-7",
2026-06-19T05:28:32.3832919Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-19T05:28:32.3833055Z       "requiredStages": [
2026-06-19T05:28:32.3833155Z         "doc",
2026-06-19T05:28:32.3833256Z         "impl",
2026-06-19T05:28:32.3833360Z         "unit"
2026-06-19T05:28:32.3833460Z       ],
2026-06-19T05:28:32.3833565Z       "stages": {
2026-06-19T05:28:32.3833665Z         "doc": {
2026-06-19T05:28:32.3833784Z           "complete": true,
2026-06-19T05:28:32.3833894Z           "evidence": [
2026-06-19T05:28:32.3833999Z             {
2026-06-19T05:28:32.3834128Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.3834233Z               "line": 487
2026-06-19T05:28:32.3834337Z             }
2026-06-19T05:28:32.3834428Z           ]
2026-06-19T05:28:32.3834533Z         },
2026-06-19T05:28:32.3834633Z         "impl": {
2026-06-19T05:28:32.3834748Z           "complete": true,
2026-06-19T05:28:32.3834857Z           "evidence": [
2026-06-19T05:28:32.3834957Z             {
2026-06-19T05:28:32.3835106Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.3835219Z               "line": 505
2026-06-19T05:28:32.3835325Z             },
2026-06-19T05:28:32.3835426Z             {
2026-06-19T05:28:32.3835557Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:28:32.3835661Z               "line": 87
2026-06-19T05:28:32.3835767Z             },
2026-06-19T05:28:32.3835863Z             {
2026-06-19T05:28:32.3836029Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.3836140Z               "line": 81
2026-06-19T05:28:32.3836239Z             },
2026-06-19T05:28:32.3836339Z             {
2026-06-19T05:28:32.3836492Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.3836601Z               "line": 166
2026-06-19T05:28:32.3836702Z             },
2026-06-19T05:28:32.3836797Z             {
2026-06-19T05:28:32.3836935Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3837036Z               "line": 1538
2026-06-19T05:28:32.3837131Z             }
2026-06-19T05:28:32.3837337Z           ]
2026-06-19T05:28:32.3837441Z         },
2026-06-19T05:28:32.3837545Z         "int": {
2026-06-19T05:28:32.3837651Z           "complete": false,
2026-06-19T05:28:32.3837769Z           "evidence": []
2026-06-19T05:28:32.3837864Z         },
2026-06-19T05:28:32.3837969Z         "unit": {
2026-06-19T05:28:32.3838082Z           "complete": true,
2026-06-19T05:28:32.3838286Z           "evidence": [
2026-06-19T05:28:32.3838391Z             {
2026-06-19T05:28:32.3838533Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.3838639Z               "line": 623
2026-06-19T05:28:32.3838739Z             },
2026-06-19T05:28:32.3838843Z             {
2026-06-19T05:28:32.3839092Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:28:32.3839206Z               "line": 212
2026-06-19T05:28:32.3839307Z             },
2026-06-19T05:28:32.3839407Z             {
2026-06-19T05:28:32.3839549Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:28:32.3839678Z               "line": 307
2026-06-19T05:28:32.3839783Z             },
2026-06-19T05:28:32.3839884Z             {
2026-06-19T05:28:32.3840017Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3840121Z               "line": 7581
2026-06-19T05:28:32.3840223Z             },
2026-06-19T05:28:32.3840327Z             {
2026-06-19T05:28:32.3840460Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3840576Z               "line": 7608
2026-06-19T05:28:32.3840679Z             }
2026-06-19T05:28:32.3840783Z           ]
2026-06-19T05:28:32.3840883Z         }
2026-06-19T05:28:32.3840982Z       }
2026-06-19T05:28:32.3841086Z     },
2026-06-19T05:28:32.3841182Z     {
2026-06-19T05:28:32.3841297Z       "id": "REQ-FRONT-1",
2026-06-19T05:28:32.3841492Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-19T05:28:32.3841611Z       "requiredStages": [],
2026-06-19T05:28:32.3841710Z       "stages": {
2026-06-19T05:28:32.3841812Z         "doc": {
2026-06-19T05:28:32.3841935Z           "complete": false,
2026-06-19T05:28:32.3842039Z           "evidence": []
2026-06-19T05:28:32.3842131Z         },
2026-06-19T05:28:32.3842236Z         "impl": {
2026-06-19T05:28:32.3842349Z           "complete": false,
2026-06-19T05:28:32.3842456Z           "evidence": []
2026-06-19T05:28:32.3842560Z         },
2026-06-19T05:28:32.3842664Z         "int": {
2026-06-19T05:28:32.3842775Z           "complete": false,
2026-06-19T05:28:32.3842880Z           "evidence": []
2026-06-19T05:28:32.3842984Z         },
2026-06-19T05:28:32.3843086Z         "unit": {
2026-06-19T05:28:32.3843199Z           "complete": false,
2026-06-19T05:28:32.3843303Z           "evidence": []
2026-06-19T05:28:32.3843398Z         }
2026-06-19T05:28:32.3843489Z       }
2026-06-19T05:28:32.3843586Z     },
2026-06-19T05:28:32.3843681Z     {
2026-06-19T05:28:32.3843811Z       "id": "REQ-HAZARD-ATTACH-WEDGE",
2026-06-19T05:28:32.3849262Z       "title": "A legitimately dead PTY child (real crash/kill) + an undrained operator pump must NOT wedge the broker for all other clients. ROOT (v0.12.0 real-harness defect): loopback attach output is a blocking write_all into a bounded 64KB tokio duplex (nethost.rs:1040,1090); when the operator's rc pump stops draining (tab closed) the buffer fills and write_all blocks forever (the 'loopback never hangs' assumption at nethost.rs:1103 is false), parking a worker in the 2-worker net runtime (nethost.rs:640); a couple of these saturate BOTH workers → every new attach / `endpoint run` stalls right after 'PUMP_IPC_READER: spawned' → 30s FIRST_EVENT_GRACE → 'no output / dead or wedged'; `daemon stop` cannot join the stuck workers. DISTINCT from the removed B1 path-(c) mutex deadlock. DISPOSITION = PROVE-DON'T-CHANGE (doyle GATE-PASS @e883f45, 2026-06-18): this ROOT is the SUPERSEDED v0.12.0 hypothesis — the post-L0 code ALREADY prevents the wedge, so NO fail-fast / worker-count code was added. serve_attach forwards fire-and-forget (net_stream_send op_id=None) and the broker-side send_stream is already BROKER-QUIC-DEADLINE-bounded (bounded_block_on, 10s); the loopback duplex is drained broker-INTERNALLY by the operator row's own read pump (RecvHalf::Loopback, retentive_cap==0 → evict-not-park) so a dead rc (a dropped IPC subscriber) never backs peer_w up; bounded_block_on parks the BROKER DISPATCH thread, not a net worker → no worker-pool exhaustion (full mechanism in the required_stages comment). Folds the status=online sub-check: a dead spt-hosted endpoint is marked OFFLINE within one reconcile tick on abrupt child death (broker exit-waiter reaps the session → B2 sees it absent) — PROVEN, no change. (v0.12.1)",
2026-06-19T05:28:32.3849661Z       "requiredStages": [
2026-06-19T05:28:32.3849751Z         "int"
2026-06-19T05:28:32.3849857Z       ],
2026-06-19T05:28:32.3849952Z       "stages": {
2026-06-19T05:28:32.3850057Z         "doc": {
2026-06-19T05:28:32.3850172Z           "complete": false,
2026-06-19T05:28:32.3850277Z           "evidence": []
2026-06-19T05:28:32.3850381Z         },
2026-06-19T05:28:32.3850511Z         "impl": {
2026-06-19T05:28:32.3850619Z           "complete": false,
2026-06-19T05:28:32.3850730Z           "evidence": []
2026-06-19T05:28:32.3850826Z         },
2026-06-19T05:28:32.3850930Z         "int": {
2026-06-19T05:28:32.3851035Z           "complete": true,
2026-06-19T05:28:32.3851145Z           "evidence": [
2026-06-19T05:28:32.3851249Z             {
2026-06-19T05:28:32.3851435Z               "path": "crates/spt/tests/attach_wedge_e2e.rs",
2026-06-19T05:28:32.3851538Z               "line": 300
2026-06-19T05:28:32.3851641Z             }
2026-06-19T05:28:32.3851737Z           ]
2026-06-19T05:28:32.3851837Z         },
2026-06-19T05:28:32.3851942Z         "unit": {
2026-06-19T05:28:32.3852062Z           "complete": false,
2026-06-19T05:28:32.3852176Z           "evidence": []
2026-06-19T05:28:32.3852275Z         }
2026-06-19T05:28:32.3852382Z       }
2026-06-19T05:28:32.3852477Z     },
2026-06-19T05:28:32.3852581Z     {
2026-06-19T05:28:32.3852729Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-19T05:28:32.3855224Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-19T05:28:32.3855358Z       "requiredStages": [
2026-06-19T05:28:32.3855462Z         "doc",
2026-06-19T05:28:32.3855568Z         "impl",
2026-06-19T05:28:32.3855691Z         "unit",
2026-06-19T05:28:32.3855796Z         "int"
2026-06-19T05:28:32.3855893Z       ],
2026-06-19T05:28:32.3856001Z       "stages": {
2026-06-19T05:28:32.3856198Z         "doc": {
2026-06-19T05:28:32.3856307Z           "complete": true,
2026-06-19T05:28:32.3856407Z           "evidence": [
2026-06-19T05:28:32.3856513Z             {
2026-06-19T05:28:32.3856678Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.3856791Z               "line": 333
2026-06-19T05:28:32.3856897Z             }
2026-06-19T05:28:32.3856997Z           ]
2026-06-19T05:28:32.3857102Z         },
2026-06-19T05:28:32.3857202Z         "impl": {
2026-06-19T05:28:32.3857322Z           "complete": true,
2026-06-19T05:28:32.3857426Z           "evidence": [
2026-06-19T05:28:32.3857527Z             {
2026-06-19T05:28:32.3857674Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3857779Z               "line": 494
2026-06-19T05:28:32.3857875Z             },
2026-06-19T05:28:32.3858070Z             {
2026-06-19T05:28:32.3858218Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3858336Z               "line": 499
2026-06-19T05:28:32.3858438Z             },
2026-06-19T05:28:32.3858537Z             {
2026-06-19T05:28:32.3858689Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3858876Z               "line": 874
2026-06-19T05:28:32.3859060Z             },
2026-06-19T05:28:32.3859160Z             {
2026-06-19T05:28:32.3859306Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3859411Z               "line": 915
2026-06-19T05:28:32.3859522Z             },
2026-06-19T05:28:32.3859621Z             {
2026-06-19T05:28:32.3859764Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3859869Z               "line": 926
2026-06-19T05:28:32.3859973Z             },
2026-06-19T05:28:32.3860075Z             {
2026-06-19T05:28:32.3860221Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.3860331Z               "line": 358
2026-06-19T05:28:32.3860427Z             }
2026-06-19T05:28:32.3860527Z           ]
2026-06-19T05:28:32.3860622Z         },
2026-06-19T05:28:32.3860723Z         "int": {
2026-06-19T05:28:32.3860842Z           "complete": true,
2026-06-19T05:28:32.3860946Z           "evidence": [
2026-06-19T05:28:32.3861052Z             {
2026-06-19T05:28:32.3861209Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-19T05:28:32.3861319Z               "line": 30
2026-06-19T05:28:32.3861424Z             }
2026-06-19T05:28:32.3861518Z           ]
2026-06-19T05:28:32.3861615Z         },
2026-06-19T05:28:32.3861720Z         "unit": {
2026-06-19T05:28:32.3861833Z           "complete": true,
2026-06-19T05:28:32.3861937Z           "evidence": [
2026-06-19T05:28:32.3862027Z             {
2026-06-19T05:28:32.3862178Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3862283Z               "line": 1493
2026-06-19T05:28:32.3862393Z             },
2026-06-19T05:28:32.3862497Z             {
2026-06-19T05:28:32.3862641Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3862746Z               "line": 1518
2026-06-19T05:28:32.3862850Z             },
2026-06-19T05:28:32.3862951Z             {
2026-06-19T05:28:32.3863099Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3863208Z               "line": 1535
2026-06-19T05:28:32.3863313Z             },
2026-06-19T05:28:32.3863413Z             {
2026-06-19T05:28:32.3863556Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3863657Z               "line": 1578
2026-06-19T05:28:32.3863756Z             }
2026-06-19T05:28:32.3863857Z           ]
2026-06-19T05:28:32.3863957Z         }
2026-06-19T05:28:32.3864056Z       }
2026-06-19T05:28:32.3864152Z     },
2026-06-19T05:28:32.3864248Z     {
2026-06-19T05:28:32.3864418Z       "id": "REQ-HAZARD-BRAIN-RESTART-LIFECYCLE-REHYDRATE",
2026-06-19T05:28:32.3867005Z       "title": "B4 (deepest): a bare brain restart (broker survives) REHYDRATES the live-agent lifecycle so post-restart endpoints are hosted + attachable. Today resume_sessions (brainproc.rs:186, brain.rs:797-809) re-subscribes to the broker's PTY sessions but ALL BrainLifecycle instances (lifecycle.rs:58-130; the ephemeral brain.rs:254-275) are LOST on restart → a post-restart live endpoint gets no livehost → its Psyche is never (re)hosted and new spawns die / can't attach until a FULL daemon reset (operator: perri's brain kill+restart wedged everything until a full daemon kill). FIX: on brain startup, rebuild a BrainLifecycle per resumed live-capable session — load the manifest from the adapter registry → instantiate → start the pulse — the rehydrate the resume no-op cannot do. Composes with B2 (the reconcile re-hosts from the honest on-disk status after rehydrate). (v0.12.0)",
2026-06-19T05:28:32.3867140Z       "requiredStages": [],
2026-06-19T05:28:32.3867243Z       "stages": {
2026-06-19T05:28:32.3867462Z         "doc": {
2026-06-19T05:28:32.3867576Z           "complete": false,
2026-06-19T05:28:32.3867685Z           "evidence": []
2026-06-19T05:28:32.3867787Z         },
2026-06-19T05:28:32.3867896Z         "impl": {
2026-06-19T05:28:32.3868005Z           "complete": false,
2026-06-19T05:28:32.3868106Z           "evidence": []
2026-06-19T05:28:32.3868324Z         },
2026-06-19T05:28:32.3868426Z         "int": {
2026-06-19T05:28:32.3868544Z           "complete": false,
2026-06-19T05:28:32.3868653Z           "evidence": []
2026-06-19T05:28:32.3868750Z         },
2026-06-19T05:28:32.3868854Z         "unit": {
2026-06-19T05:28:32.3869075Z           "complete": false,
2026-06-19T05:28:32.3869207Z           "evidence": []
2026-06-19T05:28:32.3869307Z         }
2026-06-19T05:28:32.3869422Z       }
2026-06-19T05:28:32.3869507Z     },
2026-06-19T05:28:32.3869606Z     {
2026-06-19T05:28:32.3869753Z       "id": "REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP",
2026-06-19T05:28:32.3873424Z       "title": "A bare brain restart leaves EXACTLY ONE `{id}-psyche` process per endpoint — no duplicate. On an abrupt brain death stop_host never runs (the LiveSet + owned child handles die with the brain) and Breap's job/group only reaps at DAEMON stop, so the PRIOR brain's Psyche stays ALIVE; the respawned brain's reconcile re-hosts a SECOND Psyche and overwrites the `{id}-psyche` perch pid, leaving the old one untracked + alive = a duplicate that lingers until daemon-stop (the operator's 'brain kill+restart wedged everything'). FIX: at brain start, BEFORE the first reconcile re-hosts, reap any pre-existing `{id}-psyche` orphan — ID-SPECIFICALLY (recycle-safe on the shared box, where sibling agents share the `claude` basename): scoped-kill the recorded pid ONLY IF it is alive AND its exe basename == the adapter's psyche program (normalize_basename) AND its COMMAND LINE contains the full psyche id `<id>-psyche` (baked via {id}); a sibling never carries THIS id, and any unreadable signal FAILS SAFE (decline to reap — a missed dup is bounded by Breap, a wrong-kill is catastrophic). CAVEAT: the cmdline carries `<id>-psyche` only when the adapter's psyche_init.command uses {id} (the norm); a non-{id} adapter safely MISSES the reap (today's behavior, Breap bounds it) — never a wrong-kill. (v0.12.0)",
2026-06-19T05:28:32.3873606Z       "requiredStages": [
2026-06-19T05:28:32.3873711Z         "impl",
2026-06-19T05:28:32.3873836Z         "unit",
2026-06-19T05:28:32.3873940Z         "int"
2026-06-19T05:28:32.3874035Z       ],
2026-06-19T05:28:32.3874136Z       "stages": {
2026-06-19T05:28:32.3874236Z         "doc": {
2026-06-19T05:28:32.3874340Z           "complete": false,
2026-06-19T05:28:32.3874446Z           "evidence": []
2026-06-19T05:28:32.3874546Z         },
2026-06-19T05:28:32.3874655Z         "impl": {
2026-06-19T05:28:32.3874766Z           "complete": true,
2026-06-19T05:28:32.3874875Z           "evidence": [
2026-06-19T05:28:32.3874983Z             {
2026-06-19T05:28:32.3875135Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3875277Z               "line": 558
2026-06-19T05:28:32.3875381Z             },
2026-06-19T05:28:32.3875477Z             {
2026-06-19T05:28:32.3875629Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3875734Z               "line": 582
2026-06-19T05:28:32.3875839Z             },
2026-06-19T05:28:32.3875934Z             {
2026-06-19T05:28:32.3876087Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3876192Z               "line": 608
2026-06-19T05:28:32.3876296Z             },
2026-06-19T05:28:32.3876402Z             {
2026-06-19T05:28:32.3876545Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3876659Z               "line": 667
2026-06-19T05:28:32.3876751Z             },
2026-06-19T05:28:32.3876855Z             {
2026-06-19T05:28:32.3877003Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.3877112Z               "line": 89
2026-06-19T05:28:32.3877217Z             },
2026-06-19T05:28:32.3877427Z             {
2026-06-19T05:28:32.3877569Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.3877676Z               "line": 134
2026-06-19T05:28:32.3877780Z             }
2026-06-19T05:28:32.3877879Z           ]
2026-06-19T05:28:32.3877984Z         },
2026-06-19T05:28:32.3878090Z         "int": {
2026-06-19T05:28:32.3878308Z           "complete": true,
2026-06-19T05:28:32.3878413Z           "evidence": [
2026-06-19T05:28:32.3878517Z             {
2026-06-19T05:28:32.3878704Z               "path": "crates/spt/tests/brain_restart_psyche_dup_e2e.rs",
2026-06-19T05:28:32.3878808Z               "line": 20
2026-06-19T05:28:32.3878913Z             }
2026-06-19T05:28:32.3879080Z           ]
2026-06-19T05:28:32.3879180Z         },
2026-06-19T05:28:32.3879286Z         "unit": {
2026-06-19T05:28:32.3879399Z           "complete": true,
2026-06-19T05:28:32.3879514Z           "evidence": [
2026-06-19T05:28:32.3879611Z             {
2026-06-19T05:28:32.3879752Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.3879877Z               "line": 988
2026-06-19T05:28:32.3879982Z             },
2026-06-19T05:28:32.3880090Z             {
2026-06-19T05:28:32.3880219Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.3880341Z               "line": 445
2026-06-19T05:28:32.3880436Z             }
2026-06-19T05:28:32.3880545Z           ]
2026-06-19T05:28:32.3880647Z         }
2026-06-19T05:28:32.3880750Z       }
2026-06-19T05:28:32.3880851Z     },
2026-06-19T05:28:32.3880947Z     {
2026-06-19T05:28:32.3881098Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-19T05:28:32.3883727Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-19T05:28:32.3883871Z       "requiredStages": [
2026-06-19T05:28:32.3883975Z         "doc",
2026-06-19T05:28:32.3884072Z         "impl",
2026-06-19T05:28:32.3884181Z         "unit",
2026-06-19T05:28:32.3884285Z         "int"
2026-06-19T05:28:32.3884381Z       ],
2026-06-19T05:28:32.3884490Z       "stages": {
2026-06-19T05:28:32.3884600Z         "doc": {
2026-06-19T05:28:32.3884721Z           "complete": true,
2026-06-19T05:28:32.3884834Z           "evidence": [
2026-06-19T05:28:32.3884924Z             {
2026-06-19T05:28:32.3885082Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.3885191Z               "line": 302
2026-06-19T05:28:32.3885292Z             }
2026-06-19T05:28:32.3885397Z           ]
2026-06-19T05:28:32.3885501Z         },
2026-06-19T05:28:32.3885614Z         "impl": {
2026-06-19T05:28:32.3885724Z           "complete": true,
2026-06-19T05:28:32.3885827Z           "evidence": [
2026-06-19T05:28:32.3885936Z             {
2026-06-19T05:28:32.3886090Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.3886208Z               "line": 108
2026-06-19T05:28:32.3886309Z             },
2026-06-19T05:28:32.3886414Z             {
2026-06-19T05:28:32.3886556Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.3886662Z               "line": 795
2026-06-19T05:28:32.3886762Z             },
2026-06-19T05:28:32.3886861Z             {
2026-06-19T05:28:32.3886996Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.3887095Z               "line": 995
2026-06-19T05:28:32.3887306Z             },
2026-06-19T05:28:32.3887410Z             {
2026-06-19T05:28:32.3887573Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3887677Z               "line": 23
2026-06-19T05:28:32.3887777Z             },
2026-06-19T05:28:32.3887878Z             {
2026-06-19T05:28:32.3888034Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3888255Z               "line": 113
2026-06-19T05:28:32.3888358Z             },
2026-06-19T05:28:32.3888457Z             {
2026-06-19T05:28:32.3888607Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3888716Z               "line": 158
2026-06-19T05:28:32.3888820Z             },
2026-06-19T05:28:32.3888917Z             {
2026-06-19T05:28:32.3889144Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3889250Z               "line": 218
2026-06-19T05:28:32.3889355Z             },
2026-06-19T05:28:32.3889459Z             {
2026-06-19T05:28:32.3889603Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3889716Z               "line": 261
2026-06-19T05:28:32.3889818Z             },
2026-06-19T05:28:32.3889908Z             {
2026-06-19T05:28:32.3890055Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3890166Z               "line": 275
2026-06-19T05:28:32.3890274Z             },
2026-06-19T05:28:32.3890374Z             {
2026-06-19T05:28:32.3890519Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3890622Z               "line": 320
2026-06-19T05:28:32.3890721Z             },
2026-06-19T05:28:32.3890812Z             {
2026-06-19T05:28:32.3890953Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3891057Z               "line": 347
2026-06-19T05:28:32.3891154Z             },
2026-06-19T05:28:32.3891263Z             {
2026-06-19T05:28:32.3891406Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3891521Z               "line": 359
2026-06-19T05:28:32.3891615Z             },
2026-06-19T05:28:32.3891711Z             {
2026-06-19T05:28:32.3891850Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3891959Z               "line": 373
2026-06-19T05:28:32.3892065Z             },
2026-06-19T05:28:32.3892169Z             {
2026-06-19T05:28:32.3892307Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3892418Z               "line": 400
2026-06-19T05:28:32.3892512Z             },
2026-06-19T05:28:32.3892617Z             {
2026-06-19T05:28:32.3892747Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3892865Z               "line": 643
2026-06-19T05:28:32.3892965Z             },
2026-06-19T05:28:32.3893076Z             {
2026-06-19T05:28:32.3893223Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3893334Z               "line": 989
2026-06-19T05:28:32.3893438Z             },
2026-06-19T05:28:32.3893541Z             {
2026-06-19T05:28:32.3893684Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3893792Z               "line": 179
2026-06-19T05:28:32.3893901Z             },
2026-06-19T05:28:32.3894006Z             {
2026-06-19T05:28:32.3894149Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3894258Z               "line": 591
2026-06-19T05:28:32.3894369Z             },
2026-06-19T05:28:32.3894464Z             {
2026-06-19T05:28:32.3894603Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3894712Z               "line": 663
2026-06-19T05:28:32.3894811Z             },
2026-06-19T05:28:32.3894917Z             {
2026-06-19T05:28:32.3895065Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3895165Z               "line": 675
2026-06-19T05:28:32.3895276Z             },
2026-06-19T05:28:32.3895374Z             {
2026-06-19T05:28:32.3895522Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3895756Z               "line": 1159
2026-06-19T05:28:32.3895862Z             },
2026-06-19T05:28:32.3895971Z             {
2026-06-19T05:28:32.3896113Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3896227Z               "line": 183
2026-06-19T05:28:32.3896326Z             },
2026-06-19T05:28:32.3896435Z             {
2026-06-19T05:28:32.3896678Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3896787Z               "line": 260
2026-06-19T05:28:32.3896893Z             },
2026-06-19T05:28:32.3896988Z             {
2026-06-19T05:28:32.3897121Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3897236Z               "line": 271
2026-06-19T05:28:32.3897326Z             },
2026-06-19T05:28:32.3897430Z             {
2026-06-19T05:28:32.3897565Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.3897675Z               "line": 324
2026-06-19T05:28:32.3897774Z             },
2026-06-19T05:28:32.3897885Z             {
2026-06-19T05:28:32.3898032Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3898148Z               "line": 56
2026-06-19T05:28:32.3898256Z             },
2026-06-19T05:28:32.3898356Z             {
2026-06-19T05:28:32.3898510Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3898613Z               "line": 188
2026-06-19T05:28:32.3898724Z             },
2026-06-19T05:28:32.3898825Z             {
2026-06-19T05:28:32.3899046Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-19T05:28:32.3899162Z               "line": 82
2026-06-19T05:28:32.3899261Z             },
2026-06-19T05:28:32.3899366Z             {
2026-06-19T05:28:32.3899505Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3899609Z               "line": 308
2026-06-19T05:28:32.3899714Z             },
2026-06-19T05:28:32.3899810Z             {
2026-06-19T05:28:32.3899952Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.3900058Z               "line": 424
2026-06-19T05:28:32.3900163Z             },
2026-06-19T05:28:32.3900262Z             {
2026-06-19T05:28:32.3900406Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.3900511Z               "line": 1889
2026-06-19T05:28:32.3900610Z             }
2026-06-19T05:28:32.3900721Z           ]
2026-06-19T05:28:32.3900821Z         },
2026-06-19T05:28:32.3900925Z         "int": {
2026-06-19T05:28:32.3901036Z           "complete": true,
2026-06-19T05:28:32.3901149Z           "evidence": [
2026-06-19T05:28:32.3901253Z             {
2026-06-19T05:28:32.3901396Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-19T05:28:32.3901504Z               "line": 57
2026-06-19T05:28:32.3901604Z             },
2026-06-19T05:28:32.3901704Z             {
2026-06-19T05:28:32.3901847Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-19T05:28:32.3901966Z               "line": 41
2026-06-19T05:28:32.3902071Z             }
2026-06-19T05:28:32.3902171Z           ]
2026-06-19T05:28:32.3902281Z         },
2026-06-19T05:28:32.3902382Z         "unit": {
2026-06-19T05:28:32.3902504Z           "complete": true,
2026-06-19T05:28:32.3902601Z           "evidence": [
2026-06-19T05:28:32.3902711Z             {
2026-06-19T05:28:32.3902852Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.3902968Z               "line": 532
2026-06-19T05:28:32.3903077Z             },
2026-06-19T05:28:32.3903163Z             {
2026-06-19T05:28:32.3903312Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.3903415Z               "line": 756
2026-06-19T05:28:32.3903526Z             },
2026-06-19T05:28:32.3903631Z             {
2026-06-19T05:28:32.3903774Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3903884Z               "line": 1067
2026-06-19T05:28:32.3903984Z             },
2026-06-19T05:28:32.3904087Z             {
2026-06-19T05:28:32.3904230Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3904447Z               "line": 1101
2026-06-19T05:28:32.3904552Z             },
2026-06-19T05:28:32.3904648Z             {
2026-06-19T05:28:32.3904795Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3904906Z               "line": 1143
2026-06-19T05:28:32.3905010Z             },
2026-06-19T05:28:32.3905192Z             {
2026-06-19T05:28:32.3905348Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3905458Z               "line": 1215
2026-06-19T05:28:32.3905559Z             },
2026-06-19T05:28:32.3905663Z             {
2026-06-19T05:28:32.3905802Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3905920Z               "line": 1228
2026-06-19T05:28:32.3906030Z             },
2026-06-19T05:28:32.3906131Z             {
2026-06-19T05:28:32.3906273Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3906378Z               "line": 1251
2026-06-19T05:28:32.3906489Z             },
2026-06-19T05:28:32.3906588Z             {
2026-06-19T05:28:32.3906734Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3906840Z               "line": 1277
2026-06-19T05:28:32.3906942Z             },
2026-06-19T05:28:32.3907051Z             {
2026-06-19T05:28:32.3907191Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3907300Z               "line": 1291
2026-06-19T05:28:32.3907395Z             },
2026-06-19T05:28:32.3907501Z             {
2026-06-19T05:28:32.3907638Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3907749Z               "line": 1315
2026-06-19T05:28:32.3907849Z             },
2026-06-19T05:28:32.3907943Z             {
2026-06-19T05:28:32.3908093Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3908201Z               "line": 1447
2026-06-19T05:28:32.3908310Z             },
2026-06-19T05:28:32.3908412Z             {
2026-06-19T05:28:32.3908559Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3908674Z               "line": 1623
2026-06-19T05:28:32.3908774Z             },
2026-06-19T05:28:32.3908869Z             {
2026-06-19T05:28:32.3909093Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3909212Z               "line": 1678
2026-06-19T05:28:32.3909313Z             },
2026-06-19T05:28:32.3909408Z             {
2026-06-19T05:28:32.3909554Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3909664Z               "line": 1724
2026-06-19T05:28:32.3909770Z             },
2026-06-19T05:28:32.3909869Z             {
2026-06-19T05:28:32.3910017Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3910122Z               "line": 1769
2026-06-19T05:28:32.3910226Z             },
2026-06-19T05:28:32.3910332Z             {
2026-06-19T05:28:32.3910470Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3910580Z               "line": 1813
2026-06-19T05:28:32.3910675Z             },
2026-06-19T05:28:32.3910775Z             {
2026-06-19T05:28:32.3910923Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.3911033Z               "line": 1855
2026-06-19T05:28:32.3911137Z             },
2026-06-19T05:28:32.3911228Z             {
2026-06-19T05:28:32.3911381Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3911490Z               "line": 1493
2026-06-19T05:28:32.3911597Z             },
2026-06-19T05:28:32.3911704Z             {
2026-06-19T05:28:32.3911851Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3911961Z               "line": 217
2026-06-19T05:28:32.3912064Z             },
2026-06-19T05:28:32.3912168Z             {
2026-06-19T05:28:32.3912308Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3912412Z               "line": 233
2026-06-19T05:28:32.3912526Z             },
2026-06-19T05:28:32.3912717Z             {
2026-06-19T05:28:32.3912866Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3912970Z               "line": 254
2026-06-19T05:28:32.3913079Z             },
2026-06-19T05:28:32.3913181Z             {
2026-06-19T05:28:32.3913333Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3913447Z               "line": 265
2026-06-19T05:28:32.3915805Z             },
2026-06-19T05:28:32.3915941Z             {
2026-06-19T05:28:32.3916105Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3916214Z               "line": 278
2026-06-19T05:28:32.3916314Z             },
2026-06-19T05:28:32.3916420Z             {
2026-06-19T05:28:32.3916576Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3916687Z               "line": 289
2026-06-19T05:28:32.3916787Z             },
2026-06-19T05:28:32.3916881Z             {
2026-06-19T05:28:32.3917035Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3917152Z               "line": 301
2026-06-19T05:28:32.3917252Z             },
2026-06-19T05:28:32.3917347Z             {
2026-06-19T05:28:32.3917484Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3917593Z               "line": 312
2026-06-19T05:28:32.3917693Z             },
2026-06-19T05:28:32.3917799Z             {
2026-06-19T05:28:32.3917951Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3918061Z               "line": 323
2026-06-19T05:28:32.3918169Z             },
2026-06-19T05:28:32.3918270Z             {
2026-06-19T05:28:32.3918404Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3918508Z               "line": 332
2026-06-19T05:28:32.3918614Z             },
2026-06-19T05:28:32.3918718Z             {
2026-06-19T05:28:32.3918861Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3919052Z               "line": 342
2026-06-19T05:28:32.3919152Z             },
2026-06-19T05:28:32.3919258Z             {
2026-06-19T05:28:32.3919400Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-19T05:28:32.3919515Z               "line": 358
2026-06-19T05:28:32.3919612Z             },
2026-06-19T05:28:32.3919709Z             {
2026-06-19T05:28:32.3919859Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3919969Z               "line": 758
2026-06-19T05:28:32.3920072Z             },
2026-06-19T05:28:32.3920176Z             {
2026-06-19T05:28:32.3920316Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3920424Z               "line": 794
2026-06-19T05:28:32.3920524Z             },
2026-06-19T05:28:32.3920625Z             {
2026-06-19T05:28:32.3920763Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.3920869Z               "line": 966
2026-06-19T05:28:32.3920968Z             },
2026-06-19T05:28:32.3921068Z             {
2026-06-19T05:28:32.3921203Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-19T05:28:32.3921311Z               "line": 144
2026-06-19T05:28:32.3921416Z             },
2026-06-19T05:28:32.3921513Z             {
2026-06-19T05:28:32.3921659Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-19T05:28:32.3921774Z               "line": 223
2026-06-19T05:28:32.3921875Z             },
2026-06-19T05:28:32.3921979Z             {
2026-06-19T05:28:32.3922127Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-19T05:28:32.3922237Z               "line": 292
2026-06-19T05:28:32.3922335Z             },
2026-06-19T05:28:32.3922435Z             {
2026-06-19T05:28:32.3922582Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-19T05:28:32.3922686Z               "line": 17
2026-06-19T05:28:32.3922791Z             },
2026-06-19T05:28:32.3922887Z             {
2026-06-19T05:28:32.3923033Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-19T05:28:32.3923134Z               "line": 104
2026-06-19T05:28:32.3923244Z             }
2026-06-19T05:28:32.3923473Z           ]
2026-06-19T05:28:32.3923578Z         }
2026-06-19T05:28:32.3923677Z       }
2026-06-19T05:28:32.3923778Z     },
2026-06-19T05:28:32.3923878Z     {
2026-06-19T05:28:32.3924016Z       "id": "REQ-HAZARD-BROKER-QUIC-DEADLINE",
2026-06-19T05:28:32.3927083Z       "title": "The broker bounds every brain-waiting QUIC op (dial / open_stream / send_stream) so a black-holed or dead peer fails PROMPTLY with an ORDINARY error the broker REPLIES, never an unbounded await. The bound (< the brain's 30s PUMP_PEER_IO_TIMEOUT so the BROKER fires first) surfaces to the pump as a normal broker error reply → peer_outcome's non-TimedOut arm → drop conn + redial next tick, the round CONTINUES and the heartbeat keeps advancing — it must NEVER manifest as the brain's own read-deadline (the A-half poison → supervised-restart path REQ-HAZARD-PUMP-IPC-DEADLINE guards). Exactly-once is preserved: a timed-out journaled op fails INSIDE its apply_once closure so no phantom conn_id/stream_id is recorded and a fresh tick re-dials cleanly. The happy path is unchanged (a live peer completes with zero added latency; the bound only bites a non-responsive peer). This is the ROOT-cause cure for the 2.2h hfenduleam pump wedge — a dead roster peer whose QUIC path the broker awaited unbounded — recurring on hfenduleam 2026-06-16.",
2026-06-19T05:28:32.3927356Z       "requiredStages": [
2026-06-19T05:28:32.3927479Z         "doc",
2026-06-19T05:28:32.3927567Z         "impl",
2026-06-19T05:28:32.3927671Z         "unit",
2026-06-19T05:28:32.3927774Z         "int"
2026-06-19T05:28:32.3927879Z       ],
2026-06-19T05:28:32.3927979Z       "stages": {
2026-06-19T05:28:32.3928086Z         "doc": {
2026-06-19T05:28:32.3928201Z           "complete": true,
2026-06-19T05:28:32.3928301Z           "evidence": [
2026-06-19T05:28:32.3928406Z             {
2026-06-19T05:28:32.3928535Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.3928644Z               "line": 388
2026-06-19T05:28:32.3928744Z             }
2026-06-19T05:28:32.3928869Z           ]
2026-06-19T05:28:32.3929058Z         },
2026-06-19T05:28:32.3929165Z         "impl": {
2026-06-19T05:28:32.3929288Z           "complete": true,
2026-06-19T05:28:32.3929392Z           "evidence": [
2026-06-19T05:28:32.3929494Z             {
2026-06-19T05:28:32.3929636Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3929746Z               "line": 773
2026-06-19T05:28:32.3929847Z             },
2026-06-19T05:28:32.3929941Z             {
2026-06-19T05:28:32.3930084Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3930191Z               "line": 796
2026-06-19T05:28:32.3930293Z             }
2026-06-19T05:28:32.3930395Z           ]
2026-06-19T05:28:32.3930496Z         },
2026-06-19T05:28:32.3930594Z         "int": {
2026-06-19T05:28:32.3930698Z           "complete": true,
2026-06-19T05:28:32.3930804Z           "evidence": [
2026-06-19T05:28:32.3930904Z             {
2026-06-19T05:28:32.3931056Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:28:32.3931176Z               "line": 228
2026-06-19T05:28:32.3931275Z             },
2026-06-19T05:28:32.3931375Z             {
2026-06-19T05:28:32.3931514Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-19T05:28:32.3931623Z               "line": 468
2026-06-19T05:28:32.3931724Z             }
2026-06-19T05:28:32.3931824Z           ]
2026-06-19T05:28:32.3931924Z         },
2026-06-19T05:28:32.3932029Z         "unit": {
2026-06-19T05:28:32.3932139Z           "complete": true,
2026-06-19T05:28:32.3932243Z           "evidence": [
2026-06-19T05:28:32.3932349Z             {
2026-06-19T05:28:32.3932487Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.3932606Z               "line": 1495
2026-06-19T05:28:32.3932707Z             }
2026-06-19T05:28:32.3932802Z           ]
2026-06-19T05:28:32.3932901Z         }
2026-06-19T05:28:32.3932995Z       }
2026-06-19T05:28:32.3933086Z     },
2026-06-19T05:28:32.3933184Z     {
2026-06-19T05:28:32.3933442Z       "id": "REQ-HAZARD-BROKER-SEED-WIRE-SKEW",
2026-06-19T05:28:32.3937062Z       "title": "A daemon-state wire-format change (e.g. the v0.9.0 adapter-agnostic Seed) does NOT take effect until a DELIBERATE full broker restart: the broker serves the seed-control channel and is RESIDENT across a brain-only self-update (ADR-0004 no-terminate-during-update forbids auto-killing it), so a NEW-version CLI talking to a still-resident OLD broker fails the seed handshake — the old broker cannot deserialize the new Seed (its formerly-required `adapter` field is gone) and drops the conn without an ack, which surfaces to the CLI as a raw UnexpectedEof 'failed to fill whole buffer'. spt-core must (a) surface an ACTIONABLE diagnostic on that seed-ack EOF (name the stale-broker cause + the `spt daemon stop` fix — the broker restarts on the next api call), never the cryptic io error; and (b) document the operational rule (a deliberate broker restart is required on any daemon-state wire change — NOT automatic) + the FORWARD discipline (daemon-state/Seed schema changes stay additive + serde-default so a resident OLD broker tolerates a NEW CLI across a brain-only update; note this would NOT have rescued 0.9.0 itself, since the old broker's `adapter` was a required field). perri PREP-4 FINDING 1 (v0.9.0 CLI vs stale 0.8.x broker).",
2026-06-19T05:28:32.3937310Z       "requiredStages": [
2026-06-19T05:28:32.3937444Z         "doc",
2026-06-19T05:28:32.3937545Z         "impl",
2026-06-19T05:28:32.3937648Z         "unit"
2026-06-19T05:28:32.3937753Z       ],
2026-06-19T05:28:32.3937854Z       "stages": {
2026-06-19T05:28:32.3937954Z         "doc": {
2026-06-19T05:28:32.3938068Z           "complete": true,
2026-06-19T05:28:32.3938179Z           "evidence": [
2026-06-19T05:28:32.3938283Z             {
2026-06-19T05:28:32.3938419Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.3938525Z               "line": 395
2026-06-19T05:28:32.3938632Z             }
2026-06-19T05:28:32.3938732Z           ]
2026-06-19T05:28:32.3938862Z         },
2026-06-19T05:28:32.3939023Z         "impl": {
2026-06-19T05:28:32.3939134Z           "complete": true,
2026-06-19T05:28:32.3939244Z           "evidence": [
2026-06-19T05:28:32.3939337Z             {
2026-06-19T05:28:32.3939486Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.3939591Z               "line": 75
2026-06-19T05:28:32.3939691Z             }
2026-06-19T05:28:32.3939777Z           ]
2026-06-19T05:28:32.3939876Z         },
2026-06-19T05:28:32.3939977Z         "int": {
2026-06-19T05:28:32.3940097Z           "complete": false,
2026-06-19T05:28:32.3940201Z           "evidence": []
2026-06-19T05:28:32.3940301Z         },
2026-06-19T05:28:32.3940397Z         "unit": {
2026-06-19T05:28:32.3940511Z           "complete": true,
2026-06-19T05:28:32.3940621Z           "evidence": [
2026-06-19T05:28:32.3940712Z             {
2026-06-19T05:28:32.3940849Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.3940964Z               "line": 601
2026-06-19T05:28:32.3941070Z             }
2026-06-19T05:28:32.3941173Z           ]
2026-06-19T05:28:32.3941272Z         }
2026-06-19T05:28:32.3941373Z       }
2026-06-19T05:28:32.3941469Z     },
2026-06-19T05:28:32.3941573Z     {
2026-06-19T05:28:32.3941703Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-19T05:28:32.3941907Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-19T05:28:32.3942023Z       "requiredStages": [
2026-06-19T05:28:32.3942118Z         "impl",
2026-06-19T05:28:32.3942221Z         "unit"
2026-06-19T05:28:32.3942318Z       ],
2026-06-19T05:28:32.3942422Z       "stages": {
2026-06-19T05:28:32.3942522Z         "doc": {
2026-06-19T05:28:32.3942642Z           "complete": false,
2026-06-19T05:28:32.3942751Z           "evidence": []
2026-06-19T05:28:32.3942856Z         },
2026-06-19T05:28:32.3942962Z         "impl": {
2026-06-19T05:28:32.3943070Z           "complete": true,
2026-06-19T05:28:32.3943175Z           "evidence": [
2026-06-19T05:28:32.3943380Z             {
2026-06-19T05:28:32.3943531Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3943637Z               "line": 168
2026-06-19T05:28:32.3943739Z             },
2026-06-19T05:28:32.3943844Z             {
2026-06-19T05:28:32.3943983Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.3944088Z               "line": 18
2026-06-19T05:28:32.3944284Z             },
2026-06-19T05:28:32.3944383Z             {
2026-06-19T05:28:32.3944526Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.3944636Z               "line": 100
2026-06-19T05:28:32.3944736Z             }
2026-06-19T05:28:32.3944837Z           ]
2026-06-19T05:28:32.3944936Z         },
2026-06-19T05:28:32.3945041Z         "int": {
2026-06-19T05:28:32.3945156Z           "complete": false,
2026-06-19T05:28:32.3945270Z           "evidence": []
2026-06-19T05:28:32.3945375Z         },
2026-06-19T05:28:32.3945471Z         "unit": {
2026-06-19T05:28:32.3945590Z           "complete": true,
2026-06-19T05:28:32.3945699Z           "evidence": [
2026-06-19T05:28:32.3945800Z             {
2026-06-19T05:28:32.3945947Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.3946048Z               "line": 853
2026-06-19T05:28:32.3946144Z             },
2026-06-19T05:28:32.3946248Z             {
2026-06-19T05:28:32.3946389Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.3946509Z               "line": 161
2026-06-19T05:28:32.3946607Z             },
2026-06-19T05:28:32.3946701Z             {
2026-06-19T05:28:32.3946841Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.3946950Z               "line": 233
2026-06-19T05:28:32.3947055Z             }
2026-06-19T05:28:32.3947151Z           ]
2026-06-19T05:28:32.3947255Z         }
2026-06-19T05:28:32.3947359Z       }
2026-06-19T05:28:32.3947456Z     },
2026-06-19T05:28:32.3947561Z     {
2026-06-19T05:28:32.3947694Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-19T05:28:32.3948157Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-19T05:28:32.3948266Z       "requiredStages": [
2026-06-19T05:28:32.3948372Z         "impl",
2026-06-19T05:28:32.3948472Z         "unit"
2026-06-19T05:28:32.3948571Z       ],
2026-06-19T05:28:32.3948682Z       "stages": {
2026-06-19T05:28:32.3948787Z         "doc": {
2026-06-19T05:28:32.3948913Z           "complete": true,
2026-06-19T05:28:32.3949080Z           "evidence": [
2026-06-19T05:28:32.3949188Z             {
2026-06-19T05:28:32.3949321Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.3949422Z               "line": 220
2026-06-19T05:28:32.3949526Z             }
2026-06-19T05:28:32.3949626Z           ]
2026-06-19T05:28:32.3949727Z         },
2026-06-19T05:28:32.3949832Z         "impl": {
2026-06-19T05:28:32.3949941Z           "complete": true,
2026-06-19T05:28:32.3950042Z           "evidence": [
2026-06-19T05:28:32.3950142Z             {
2026-06-19T05:28:32.3950295Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.3950399Z               "line": 315
2026-06-19T05:28:32.3950499Z             },
2026-06-19T05:28:32.3950599Z             {
2026-06-19T05:28:32.3950742Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.3950856Z               "line": 356
2026-06-19T05:28:32.3950948Z             },
2026-06-19T05:28:32.3951052Z             {
2026-06-19T05:28:32.3951195Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.3951296Z               "line": 578
2026-06-19T05:28:32.3951400Z             },
2026-06-19T05:28:32.3951500Z             {
2026-06-19T05:28:32.3951645Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:28:32.3951752Z               "line": 77
2026-06-19T05:28:32.3951856Z             }
2026-06-19T05:28:32.3951953Z           ]
2026-06-19T05:28:32.3952053Z         },
2026-06-19T05:28:32.3952248Z         "int": {
2026-06-19T05:28:32.3952373Z           "complete": false,
2026-06-19T05:28:32.3952481Z           "evidence": []
2026-06-19T05:28:32.3952578Z         },
2026-06-19T05:28:32.3952683Z         "unit": {
2026-06-19T05:28:32.3952786Z           "complete": true,
2026-06-19T05:28:32.3952888Z           "evidence": [
2026-06-19T05:28:32.3952987Z             {
2026-06-19T05:28:32.3953231Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.3953350Z               "line": 747
2026-06-19T05:28:32.3953454Z             },
2026-06-19T05:28:32.3953556Z             {
2026-06-19T05:28:32.3953697Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.3953808Z               "line": 785
2026-06-19T05:28:32.3953913Z             },
2026-06-19T05:28:32.3954011Z             {
2026-06-19T05:28:32.3954144Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:28:32.3954258Z               "line": 166
2026-06-19T05:28:32.3954357Z             }
2026-06-19T05:28:32.3954461Z           ]
2026-06-19T05:28:32.3954563Z         }
2026-06-19T05:28:32.3954662Z       }
2026-06-19T05:28:32.3954762Z     },
2026-06-19T05:28:32.3954868Z     {
2026-06-19T05:28:32.3955000Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-19T05:28:32.3955578Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-19T05:28:32.3955696Z       "requiredStages": [
2026-06-19T05:28:32.3955802Z         "impl",
2026-06-19T05:28:32.3955907Z         "unit"
2026-06-19T05:28:32.3956006Z       ],
2026-06-19T05:28:32.3956197Z       "stages": {
2026-06-19T05:28:32.3956297Z         "doc": {
2026-06-19T05:28:32.3956418Z           "complete": false,
2026-06-19T05:28:32.3956526Z           "evidence": []
2026-06-19T05:28:32.3956631Z         },
2026-06-19T05:28:32.3956738Z         "impl": {
2026-06-19T05:28:32.3956855Z           "complete": true,
2026-06-19T05:28:32.3956963Z           "evidence": [
2026-06-19T05:28:32.3957064Z             {
2026-06-19T05:28:32.3957210Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-19T05:28:32.3957319Z               "line": 22
2026-06-19T05:28:32.3957420Z             },
2026-06-19T05:28:32.3957524Z             {
2026-06-19T05:28:32.3957668Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.3957773Z               "line": 487
2026-06-19T05:28:32.3957872Z             },
2026-06-19T05:28:32.3957973Z             {
2026-06-19T05:28:32.3958111Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-19T05:28:32.3958225Z               "line": 17
2026-06-19T05:28:32.3958317Z             },
2026-06-19T05:28:32.3958411Z             {
2026-06-19T05:28:32.3958549Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-19T05:28:32.3958656Z               "line": 147
2026-06-19T05:28:32.3958759Z             },
2026-06-19T05:28:32.3958864Z             {
2026-06-19T05:28:32.3959083Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.3959188Z               "line": 226
2026-06-19T05:28:32.3959290Z             },
2026-06-19T05:28:32.3959393Z             {
2026-06-19T05:28:32.3959545Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.3959650Z               "line": 251
2026-06-19T05:28:32.3959758Z             },
2026-06-19T05:28:32.3959852Z             {
2026-06-19T05:28:32.3960001Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.3960105Z               "line": 277
2026-06-19T05:28:32.3960210Z             },
2026-06-19T05:28:32.3960311Z             {
2026-06-19T05:28:32.3960453Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:28:32.3960559Z               "line": 124
2026-06-19T05:28:32.3960654Z             },
2026-06-19T05:28:32.3960758Z             {
2026-06-19T05:28:32.3960893Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:28:32.3961135Z               "line": 224
2026-06-19T05:28:32.3961222Z             }
2026-06-19T05:28:32.3961321Z           ]
2026-06-19T05:28:32.3961421Z         },
2026-06-19T05:28:32.3961523Z         "int": {
2026-06-19T05:28:32.3961645Z           "complete": false,
2026-06-19T05:28:32.3961755Z           "evidence": []
2026-06-19T05:28:32.3961856Z         },
2026-06-19T05:28:32.3962041Z         "unit": {
2026-06-19T05:28:32.3962162Z           "complete": true,
2026-06-19T05:28:32.3962275Z           "evidence": [
2026-06-19T05:28:32.3962374Z             {
2026-06-19T05:28:32.3962523Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-19T05:28:32.3962622Z               "line": 63
2026-06-19T05:28:32.3962727Z             },
2026-06-19T05:28:32.3962838Z             {
2026-06-19T05:28:32.3962989Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-19T05:28:32.3963100Z               "line": 73
2026-06-19T05:28:32.3963199Z             },
2026-06-19T05:28:32.3963308Z             {
2026-06-19T05:28:32.3963452Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-19T05:28:32.3963566Z               "line": 85
2026-06-19T05:28:32.3963651Z             },
2026-06-19T05:28:32.3963758Z             {
2026-06-19T05:28:32.3963910Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:28:32.3964014Z               "line": 346
2026-06-19T05:28:32.3964116Z             },
2026-06-19T05:28:32.3964209Z             {
2026-06-19T05:28:32.3964358Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-19T05:28:32.3964459Z               "line": 281
2026-06-19T05:28:32.3964557Z             },
2026-06-19T05:28:32.3964661Z             {
2026-06-19T05:28:32.3964804Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-19T05:28:32.3964907Z               "line": 322
2026-06-19T05:28:32.3965008Z             },
2026-06-19T05:28:32.3965108Z             {
2026-06-19T05:28:32.3965250Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-19T05:28:32.3965365Z               "line": 360
2026-06-19T05:28:32.3965471Z             },
2026-06-19T05:28:32.3965565Z             {
2026-06-19T05:28:32.3965719Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.3965823Z               "line": 688
2026-06-19T05:28:32.3965927Z             },
2026-06-19T05:28:32.3966029Z             {
2026-06-19T05:28:32.3966180Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:28:32.3966286Z               "line": 397
2026-06-19T05:28:32.3966391Z             },
2026-06-19T05:28:32.3966500Z             {
2026-06-19T05:28:32.3966639Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:28:32.3966748Z               "line": 440
2026-06-19T05:28:32.3966857Z             }
2026-06-19T05:28:32.3966959Z           ]
2026-06-19T05:28:32.3967062Z         }
2026-06-19T05:28:32.3967163Z       }
2026-06-19T05:28:32.3967274Z     },
2026-06-19T05:28:32.3967368Z     {
2026-06-19T05:28:32.3967495Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-19T05:28:32.3967746Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-19T05:28:32.3967860Z       "requiredStages": [
2026-06-19T05:28:32.3967961Z         "impl",
2026-06-19T05:28:32.3968060Z         "unit"
2026-06-19T05:28:32.3968165Z       ],
2026-06-19T05:28:32.3968262Z       "stages": {
2026-06-19T05:28:32.3968375Z         "doc": {
2026-06-19T05:28:32.3968489Z           "complete": false,
2026-06-19T05:28:32.3968600Z           "evidence": []
2026-06-19T05:28:32.3968704Z         },
2026-06-19T05:28:32.3968809Z         "impl": {
2026-06-19T05:28:32.3968924Z           "complete": true,
2026-06-19T05:28:32.3969114Z           "evidence": [
2026-06-19T05:28:32.3969206Z             {
2026-06-19T05:28:32.3969343Z               "path": "crates/spt-term/src/reader.rs",
2026-06-19T05:28:32.3969453Z               "line": 169
2026-06-19T05:28:32.3969554Z             }
2026-06-19T05:28:32.3969653Z           ]
2026-06-19T05:28:32.3969874Z         },
2026-06-19T05:28:32.3969972Z         "int": {
2026-06-19T05:28:32.3970095Z           "complete": true,
2026-06-19T05:28:32.3970196Z           "evidence": [
2026-06-19T05:28:32.3970294Z             {
2026-06-19T05:28:32.3970436Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-19T05:28:32.3970538Z               "line": 44
2026-06-19T05:28:32.3970637Z             },
2026-06-19T05:28:32.3970828Z             {
2026-06-19T05:28:32.3970975Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-19T05:28:32.3971090Z               "line": 66
2026-06-19T05:28:32.3971195Z             }
2026-06-19T05:28:32.3971299Z           ]
2026-06-19T05:28:32.3971395Z         },
2026-06-19T05:28:32.3971500Z         "unit": {
2026-06-19T05:28:32.3971605Z           "complete": true,
2026-06-19T05:28:32.3971710Z           "evidence": [
2026-06-19T05:28:32.3971815Z             {
2026-06-19T05:28:32.3971939Z               "path": "crates/spt-term/src/reader.rs",
2026-06-19T05:28:32.3972049Z               "line": 186
2026-06-19T05:28:32.3972153Z             },
2026-06-19T05:28:32.3972254Z             {
2026-06-19T05:28:32.3972388Z               "path": "crates/spt-term/src/reader.rs",
2026-06-19T05:28:32.3972492Z               "line": 238
2026-06-19T05:28:32.3972597Z             },
2026-06-19T05:28:32.3972698Z             {
2026-06-19T05:28:32.3972839Z               "path": "crates/spt-term/src/reader.rs",
2026-06-19T05:28:32.3972938Z               "line": 266
2026-06-19T05:28:32.3973044Z             }
2026-06-19T05:28:32.3973140Z           ]
2026-06-19T05:28:32.3973243Z         }
2026-06-19T05:28:32.3973340Z       }
2026-06-19T05:28:32.3973440Z     },
2026-06-19T05:28:32.3973544Z     {
2026-06-19T05:28:32.3973688Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-19T05:28:32.3974136Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-19T05:28:32.3974250Z       "requiredStages": [
2026-06-19T05:28:32.3974351Z         "impl",
2026-06-19T05:28:32.3974455Z         "unit",
2026-06-19T05:28:32.3974555Z         "int"
2026-06-19T05:28:32.3974647Z       ],
2026-06-19T05:28:32.3974756Z       "stages": {
2026-06-19T05:28:32.3974860Z         "doc": {
2026-06-19T05:28:32.3974967Z           "complete": false,
2026-06-19T05:28:32.3975084Z           "evidence": []
2026-06-19T05:28:32.3975198Z         },
2026-06-19T05:28:32.3975298Z         "impl": {
2026-06-19T05:28:32.3975416Z           "complete": true,
2026-06-19T05:28:32.3975520Z           "evidence": [
2026-06-19T05:28:32.3975625Z             {
2026-06-19T05:28:32.3975772Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3975877Z               "line": 178
2026-06-19T05:28:32.3975983Z             },
2026-06-19T05:28:32.3976083Z             {
2026-06-19T05:28:32.3976231Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3976340Z               "line": 226
2026-06-19T05:28:32.3976449Z             },
2026-06-19T05:28:32.3976541Z             {
2026-06-19T05:28:32.3976684Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.3976798Z               "line": 79
2026-06-19T05:28:32.3976899Z             },
2026-06-19T05:28:32.3977003Z             {
2026-06-19T05:28:32.3977127Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:28:32.3977247Z               "line": 52
2026-06-19T05:28:32.3977351Z             },
2026-06-19T05:28:32.3977456Z             {
2026-06-19T05:28:32.3977595Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.3977699Z               "line": 251
2026-06-19T05:28:32.3977800Z             },
2026-06-19T05:28:32.3977905Z             {
2026-06-19T05:28:32.3978051Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:28:32.3978156Z               "line": 27
2026-06-19T05:28:32.3978269Z             },
2026-06-19T05:28:32.3978377Z             {
2026-06-19T05:28:32.3978521Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:28:32.3978716Z               "line": 79
2026-06-19T05:28:32.3978817Z             },
2026-06-19T05:28:32.3978922Z             {
2026-06-19T05:28:32.3979146Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:28:32.3979260Z               "line": 102
2026-06-19T05:28:32.3979360Z             },
2026-06-19T05:28:32.3979447Z             {
2026-06-19T05:28:32.3979688Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.3979800Z               "line": 116
2026-06-19T05:28:32.3979908Z             }
2026-06-19T05:28:32.3980013Z           ]
2026-06-19T05:28:32.3980115Z         },
2026-06-19T05:28:32.3980218Z         "int": {
2026-06-19T05:28:32.3980323Z           "complete": true,
2026-06-19T05:28:32.3980443Z           "evidence": [
2026-06-19T05:28:32.3980537Z             {
2026-06-19T05:28:32.3980689Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-19T05:28:32.3980798Z               "line": 43
2026-06-19T05:28:32.3980902Z             }
2026-06-19T05:28:32.3981002Z           ]
2026-06-19T05:28:32.3981102Z         },
2026-06-19T05:28:32.3981202Z         "unit": {
2026-06-19T05:28:32.3981307Z           "complete": true,
2026-06-19T05:28:32.3981417Z           "evidence": [
2026-06-19T05:28:32.3981521Z             {
2026-06-19T05:28:32.3981665Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.3981774Z               "line": 678
2026-06-19T05:28:32.3981874Z             },
2026-06-19T05:28:32.3981980Z             {
2026-06-19T05:28:32.3982113Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.3982222Z               "line": 469
2026-06-19T05:28:32.3982324Z             },
2026-06-19T05:28:32.3982432Z             {
2026-06-19T05:28:32.3982595Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:28:32.3982709Z               "line": 124
2026-06-19T05:28:32.3982809Z             },
2026-06-19T05:28:32.3982905Z             {
2026-06-19T05:28:32.3983052Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:28:32.3983162Z               "line": 143
2026-06-19T05:28:32.3983263Z             },
2026-06-19T05:28:32.3983367Z             {
2026-06-19T05:28:32.3983508Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:28:32.3983618Z               "line": 160
2026-06-19T05:28:32.3983714Z             },
2026-06-19T05:28:32.3983823Z             {
2026-06-19T05:28:32.3983967Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:28:32.3984076Z               "line": 187
2026-06-19T05:28:32.3984186Z             },
2026-06-19T05:28:32.3984291Z             {
2026-06-19T05:28:32.3984438Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-19T05:28:32.3984544Z               "line": 206
2026-06-19T05:28:32.3984649Z             },
2026-06-19T05:28:32.3984758Z             {
2026-06-19T05:28:32.3984897Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.3985006Z               "line": 229
2026-06-19T05:28:32.3985110Z             }
2026-06-19T05:28:32.3985207Z           ]
2026-06-19T05:28:32.3985306Z         }
2026-06-19T05:28:32.3985411Z       }
2026-06-19T05:28:32.3985513Z     },
2026-06-19T05:28:32.3985616Z     {
2026-06-19T05:28:32.3985768Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-19T05:28:32.3986437Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-19T05:28:32.3986567Z       "requiredStages": [
2026-06-19T05:28:32.3986675Z         "impl",
2026-06-19T05:28:32.3986782Z         "unit"
2026-06-19T05:28:32.3986882Z       ],
2026-06-19T05:28:32.3986986Z       "stages": {
2026-06-19T05:28:32.3987092Z         "doc": {
2026-06-19T05:28:32.3987197Z           "complete": false,
2026-06-19T05:28:32.3987305Z           "evidence": []
2026-06-19T05:28:32.3987411Z         },
2026-06-19T05:28:32.3987630Z         "impl": {
2026-06-19T05:28:32.3987741Z           "complete": true,
2026-06-19T05:28:32.3987845Z           "evidence": [
2026-06-19T05:28:32.3987949Z             {
2026-06-19T05:28:32.3988098Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3988206Z               "line": 622
2026-06-19T05:28:32.3988312Z             },
2026-06-19T05:28:32.3988475Z             {
2026-06-19T05:28:32.3988630Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.3988740Z               "line": 840
2026-06-19T05:28:32.3988848Z             }
2026-06-19T05:28:32.3989010Z           ]
2026-06-19T05:28:32.3989105Z         },
2026-06-19T05:28:32.3989200Z         "int": {
2026-06-19T05:28:32.3989314Z           "complete": false,
2026-06-19T05:28:32.3989434Z           "evidence": []
2026-06-19T05:28:32.3989529Z         },
2026-06-19T05:28:32.3989639Z         "unit": {
2026-06-19T05:28:32.3989749Z           "complete": true,
2026-06-19T05:28:32.3989862Z           "evidence": [
2026-06-19T05:28:32.3989968Z             {
2026-06-19T05:28:32.3990125Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-19T05:28:32.3990244Z               "line": 161
2026-06-19T05:28:32.3990341Z             }
2026-06-19T05:28:32.3990458Z           ]
2026-06-19T05:28:32.3990564Z         }
2026-06-19T05:28:32.3990670Z       }
2026-06-19T05:28:32.3990773Z     },
2026-06-19T05:28:32.3990874Z     {
2026-06-19T05:28:32.3991018Z       "id": "REQ-HAZARD-DAEMON-STOP-BARRIER",
2026-06-19T05:28:32.3992773Z       "title": "B3: `spt daemon stop` then an immediate `spt daemon start` does NOT race — stop fully completes before it returns. Today request_stop (seedmap.rs:240-255) returns on the KIND_STOPPING ack (sent seedmap.rs:174-176) BEFORE the seed socket unbinds, so a following is_running ping (daemon.rs:375) wins the exit window and start reports ALREADY_RUNNING (operator: daemon stop → STOPPED then start → ALREADY_RUNNING). FIX: unbind/stop-gate the seed socket BEFORE acking KIND_STOPPING, OR request_stop waits for a ping-to-fail before returning. Unit: stop then immediate is_running()==false. (v0.12.0)",
2026-06-19T05:28:32.3992912Z       "requiredStages": [
2026-06-19T05:28:32.3993016Z         "impl",
2026-06-19T05:28:32.3993121Z         "unit"
2026-06-19T05:28:32.3993213Z       ],
2026-06-19T05:28:32.3993311Z       "stages": {
2026-06-19T05:28:32.3993440Z         "doc": {
2026-06-19T05:28:32.3993561Z           "complete": false,
2026-06-19T05:28:32.3993674Z           "evidence": []
2026-06-19T05:28:32.3993775Z         },
2026-06-19T05:28:32.3993876Z         "impl": {
2026-06-19T05:28:32.3993988Z           "complete": true,
2026-06-19T05:28:32.3994092Z           "evidence": [
2026-06-19T05:28:32.3994198Z             {
2026-06-19T05:28:32.3994345Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:28:32.3994450Z               "line": 257
2026-06-19T05:28:32.3994556Z             }
2026-06-19T05:28:32.3994660Z           ]
2026-06-19T05:28:32.3994765Z         },
2026-06-19T05:28:32.3994861Z         "int": {
2026-06-19T05:28:32.3994974Z           "complete": false,
2026-06-19T05:28:32.3995080Z           "evidence": []
2026-06-19T05:28:32.3995180Z         },
2026-06-19T05:28:32.3995280Z         "unit": {
2026-06-19T05:28:32.3995385Z           "complete": true,
2026-06-19T05:28:32.3995500Z           "evidence": [
2026-06-19T05:28:32.3995590Z             {
2026-06-19T05:28:32.3995739Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:28:32.3995848Z               "line": 360
2026-06-19T05:28:32.3995947Z             }
2026-06-19T05:28:32.3996053Z           ]
2026-06-19T05:28:32.3996153Z         }
2026-06-19T05:28:32.3996252Z       }
2026-06-19T05:28:32.3996347Z     },
2026-06-19T05:28:32.3996452Z     {
2026-06-19T05:28:32.3996587Z       "id": "REQ-HAZARD-DAEMON-STOP-REAP",
2026-06-19T05:28:32.3998400Z       "title": "Breap: `spt daemon stop` REAPS the spt-hosted children it spawned — no orphaned psyche/harness processes. Today a stop leaves ~8 orphaned claude-spt-psyche.exe + spt.exe: Psyches are spawned DETACHED (runtime.rs:342-356, the Child is dropped — 'Detached' ~349) and the livehost stop flag Arc<AtomicBool> is NEVER raised (brainproc.rs:227-230 holds it 'for symmetry'). FIX: on stop, raise the livehost stop flag AND kill the spawned psyche/spt-hosted children — via a Windows job object / Unix process-group so the children die with the daemon (not detached-immortal). Folds with B3 (both the stop path). (v0.12.0)",
2026-06-19T05:28:32.3998757Z       "requiredStages": [
2026-06-19T05:28:32.3998872Z         "impl",
2026-06-19T05:28:32.3999063Z         "unit"
2026-06-19T05:28:32.3999166Z       ],
2026-06-19T05:28:32.3999272Z       "stages": {
2026-06-19T05:28:32.3999380Z         "doc": {
2026-06-19T05:28:32.3999483Z           "complete": false,
2026-06-19T05:28:32.3999603Z           "evidence": []
2026-06-19T05:28:32.3999709Z         },
2026-06-19T05:28:32.3999817Z         "impl": {
2026-06-19T05:28:32.3999937Z           "complete": true,
2026-06-19T05:28:32.4000075Z           "evidence": [
2026-06-19T05:28:32.4000179Z             {
2026-06-19T05:28:32.4000332Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.4000441Z               "line": 1018
2026-06-19T05:28:32.4000548Z             },
2026-06-19T05:28:32.4000652Z             {
2026-06-19T05:28:32.4000800Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4000920Z               "line": 278
2026-06-19T05:28:32.4001023Z             },
2026-06-19T05:28:32.4001129Z             {
2026-06-19T05:28:32.4001272Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4001381Z               "line": 311
2026-06-19T05:28:32.4001483Z             },
2026-06-19T05:28:32.4001587Z             {
2026-06-19T05:28:32.4001729Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-19T05:28:32.4001838Z               "line": 26
2026-06-19T05:28:32.4001942Z             }
2026-06-19T05:28:32.4002045Z           ]
2026-06-19T05:28:32.4004364Z         },
2026-06-19T05:28:32.4004505Z         "int": {
2026-06-19T05:28:32.4004628Z           "complete": false,
2026-06-19T05:28:32.4004739Z           "evidence": []
2026-06-19T05:28:32.4004844Z         },
2026-06-19T05:28:32.4004948Z         "unit": {
2026-06-19T05:28:32.4005068Z           "complete": true,
2026-06-19T05:28:32.4005177Z           "evidence": [
2026-06-19T05:28:32.4005291Z             {
2026-06-19T05:28:32.4005445Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-19T05:28:32.4005554Z               "line": 271
2026-06-19T05:28:32.4005659Z             },
2026-06-19T05:28:32.4005759Z             {
2026-06-19T05:28:32.4005911Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-19T05:28:32.4006027Z               "line": 348
2026-06-19T05:28:32.4006126Z             }
2026-06-19T05:28:32.4006231Z           ]
2026-06-19T05:28:32.4006333Z         }
2026-06-19T05:28:32.4006431Z       }
2026-06-19T05:28:32.4006531Z     },
2026-06-19T05:28:32.4006633Z     {
2026-06-19T05:28:32.4006769Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-19T05:28:32.4006993Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-19T05:28:32.4007115Z       "requiredStages": [
2026-06-19T05:28:32.4007219Z         "impl",
2026-06-19T05:28:32.4007325Z         "unit"
2026-06-19T05:28:32.4007425Z       ],
2026-06-19T05:28:32.4007524Z       "stages": {
2026-06-19T05:28:32.4007635Z         "doc": {
2026-06-19T05:28:32.4007739Z           "complete": false,
2026-06-19T05:28:32.4007848Z           "evidence": []
2026-06-19T05:28:32.4007950Z         },
2026-06-19T05:28:32.4008054Z         "impl": {
2026-06-19T05:28:32.4008158Z           "complete": true,
2026-06-19T05:28:32.4008264Z           "evidence": [
2026-06-19T05:28:32.4008369Z             {
2026-06-19T05:28:32.4008517Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4008631Z               "line": 40
2026-06-19T05:28:32.4008731Z             },
2026-06-19T05:28:32.4008836Z             {
2026-06-19T05:28:32.4009214Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4009332Z               "line": 103
2026-06-19T05:28:32.4009432Z             },
2026-06-19T05:28:32.4009533Z             {
2026-06-19T05:28:32.4009684Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4009788Z               "line": 218
2026-06-19T05:28:32.4009977Z             },
2026-06-19T05:28:32.4010077Z             {
2026-06-19T05:28:32.4010226Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4010344Z               "line": 323
2026-06-19T05:28:32.4010444Z             }
2026-06-19T05:28:32.4010545Z           ]
2026-06-19T05:28:32.4010649Z         },
2026-06-19T05:28:32.4010754Z         "int": {
2026-06-19T05:28:32.4010869Z           "complete": false,
2026-06-19T05:28:32.4010988Z           "evidence": []
2026-06-19T05:28:32.4011088Z         },
2026-06-19T05:28:32.4011193Z         "unit": {
2026-06-19T05:28:32.4011312Z           "complete": true,
2026-06-19T05:28:32.4011428Z           "evidence": [
2026-06-19T05:28:32.4011527Z             {
2026-06-19T05:28:32.4011670Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4011780Z               "line": 361
2026-06-19T05:28:32.4011875Z             },
2026-06-19T05:28:32.4011965Z             {
2026-06-19T05:28:32.4012105Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4012217Z               "line": 433
2026-06-19T05:28:32.4012322Z             },
2026-06-19T05:28:32.4012427Z             {
2026-06-19T05:28:32.4012572Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4012682Z               "line": 496
2026-06-19T05:28:32.4012778Z             },
2026-06-19T05:28:32.4012882Z             {
2026-06-19T05:28:32.4013016Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4013125Z               "line": 517
2026-06-19T05:28:32.4013220Z             }
2026-06-19T05:28:32.4013326Z           ]
2026-06-19T05:28:32.4013426Z         }
2026-06-19T05:28:32.4013530Z       }
2026-06-19T05:28:32.4013631Z     },
2026-06-19T05:28:32.4013732Z     {
2026-06-19T05:28:32.4013864Z       "id": "REQ-HAZARD-DEFERRED-MANIFEST",
2026-06-19T05:28:32.4016234Z       "title": "A pointer-mode (delegated / GhReleaseManaged) adapter whose binary/manifest is not yet extracted is reported with a CLEAR diagnostic, never silently dropped. Today such an adapter reads its manifest LIVE from source_dir (registry.rs manifest_dir ~146/149); a deferred / un-extracted install makes load_manifest fail → registered() (~410, filter_map(.ok())) SILENTLY DROPS the row → downstream ADAPTER_UNRESOLVED + a cryptic os-error-2 on `spt adapter use`. FIX: surface a clear diagnostic at the resolver + at `adapter use` (name the adapter + the deferred/missing-manifest cause + the fix), not a silent filter-drop and not a bare os-error-2; consider an eager manifest copy at register time so host_binaries survive before the binary download completes. doyle Finding A. (post-v0.10.0)",
2026-06-19T05:28:32.4016386Z       "requiredStages": [
2026-06-19T05:28:32.4016495Z         "impl",
2026-06-19T05:28:32.4016592Z         "unit"
2026-06-19T05:28:32.4016696Z       ],
2026-06-19T05:28:32.4016801Z       "stages": {
2026-06-19T05:28:32.4016902Z         "doc": {
2026-06-19T05:28:32.4017015Z           "complete": false,
2026-06-19T05:28:32.4017120Z           "evidence": []
2026-06-19T05:28:32.4017254Z         },
2026-06-19T05:28:32.4017358Z         "impl": {
2026-06-19T05:28:32.4017467Z           "complete": true,
2026-06-19T05:28:32.4017572Z           "evidence": [
2026-06-19T05:28:32.4017675Z             {
2026-06-19T05:28:32.4017832Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4017943Z               "line": 402
2026-06-19T05:28:32.4018046Z             },
2026-06-19T05:28:32.4018152Z             {
2026-06-19T05:28:32.4018294Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4018403Z               "line": 446
2026-06-19T05:28:32.4018600Z             }
2026-06-19T05:28:32.4018704Z           ]
2026-06-19T05:28:32.4018806Z         },
2026-06-19T05:28:32.4018915Z         "int": {
2026-06-19T05:28:32.4019116Z           "complete": false,
2026-06-19T05:28:32.4019229Z           "evidence": []
2026-06-19T05:28:32.4019329Z         },
2026-06-19T05:28:32.4019436Z         "unit": {
2026-06-19T05:28:32.4019558Z           "complete": true,
2026-06-19T05:28:32.4019774Z           "evidence": [
2026-06-19T05:28:32.4019877Z             {
2026-06-19T05:28:32.4020022Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4020136Z               "line": 910
2026-06-19T05:28:32.4020239Z             }
2026-06-19T05:28:32.4020344Z           ]
2026-06-19T05:28:32.4020444Z         }
2026-06-19T05:28:32.4020542Z       }
2026-06-19T05:28:32.4020646Z     },
2026-06-19T05:28:32.4020742Z     {
2026-06-19T05:28:32.4020876Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-19T05:28:32.4021048Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-19T05:28:32.4021172Z       "requiredStages": [
2026-06-19T05:28:32.4021275Z         "impl",
2026-06-19T05:28:32.4021372Z         "unit"
2026-06-19T05:28:32.4021477Z       ],
2026-06-19T05:28:32.4021576Z       "stages": {
2026-06-19T05:28:32.4021673Z         "doc": {
2026-06-19T05:28:32.4021796Z           "complete": false,
2026-06-19T05:28:32.4021905Z           "evidence": []
2026-06-19T05:28:32.4022011Z         },
2026-06-19T05:28:32.4022115Z         "impl": {
2026-06-19T05:28:32.4022239Z           "complete": true,
2026-06-19T05:28:32.4022340Z           "evidence": [
2026-06-19T05:28:32.4022444Z             {
2026-06-19T05:28:32.4022593Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4022708Z               "line": 116
2026-06-19T05:28:32.4022810Z             },
2026-06-19T05:28:32.4022910Z             {
2026-06-19T05:28:32.4023057Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4023170Z               "line": 211
2026-06-19T05:28:32.4023271Z             }
2026-06-19T05:28:32.4023377Z           ]
2026-06-19T05:28:32.4023475Z         },
2026-06-19T05:28:32.4023581Z         "int": {
2026-06-19T05:28:32.4023695Z           "complete": false,
2026-06-19T05:28:32.4023794Z           "evidence": []
2026-06-19T05:28:32.4023896Z         },
2026-06-19T05:28:32.4024005Z         "unit": {
2026-06-19T05:28:32.4024123Z           "complete": true,
2026-06-19T05:28:32.4024235Z           "evidence": [
2026-06-19T05:28:32.4024339Z             {
2026-06-19T05:28:32.4024472Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4024593Z               "line": 388
2026-06-19T05:28:32.4024702Z             },
2026-06-19T05:28:32.4024806Z             {
2026-06-19T05:28:32.4024950Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4025059Z               "line": 469
2026-06-19T05:28:32.4025160Z             }
2026-06-19T05:28:32.4025265Z           ]
2026-06-19T05:28:32.4025369Z         }
2026-06-19T05:28:32.4025475Z       }
2026-06-19T05:28:32.4025580Z     },
2026-06-19T05:28:32.4025682Z     {
2026-06-19T05:28:32.4025830Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-19T05:28:32.4026956Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-19T05:28:32.4027085Z       "requiredStages": [
2026-06-19T05:28:32.4027190Z         "impl",
2026-06-19T05:28:32.4027289Z         "unit"
2026-06-19T05:28:32.4027390Z       ],
2026-06-19T05:28:32.4027491Z       "stages": {
2026-06-19T05:28:32.4027594Z         "doc": {
2026-06-19T05:28:32.4027714Z           "complete": true,
2026-06-19T05:28:32.4027824Z           "evidence": [
2026-06-19T05:28:32.4027927Z             {
2026-06-19T05:28:32.4028060Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4028283Z               "line": 206
2026-06-19T05:28:32.4028387Z             }
2026-06-19T05:28:32.4028484Z           ]
2026-06-19T05:28:32.4028583Z         },
2026-06-19T05:28:32.4028693Z         "impl": {
2026-06-19T05:28:32.4028807Z           "complete": true,
2026-06-19T05:28:32.4028921Z           "evidence": [
2026-06-19T05:28:32.4029265Z             {
2026-06-19T05:28:32.4029417Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4029522Z               "line": 673
2026-06-19T05:28:32.4029622Z             },
2026-06-19T05:28:32.4029728Z             {
2026-06-19T05:28:32.4029875Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4029981Z               "line": 773
2026-06-19T05:28:32.4030085Z             },
2026-06-19T05:28:32.4030180Z             {
2026-06-19T05:28:32.4030330Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4030456Z               "line": 1045
2026-06-19T05:28:32.4030557Z             },
2026-06-19T05:28:32.4030663Z             {
2026-06-19T05:28:32.4030819Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.4030927Z               "line": 184
2026-06-19T05:28:32.4031036Z             }
2026-06-19T05:28:32.4031140Z           ]
2026-06-19T05:28:32.4031240Z         },
2026-06-19T05:28:32.4031341Z         "int": {
2026-06-19T05:28:32.4031464Z           "complete": false,
2026-06-19T05:28:32.4031574Z           "evidence": []
2026-06-19T05:28:32.4031675Z         },
2026-06-19T05:28:32.4031788Z         "unit": {
2026-06-19T05:28:32.4031904Z           "complete": true,
2026-06-19T05:28:32.4032013Z           "evidence": [
2026-06-19T05:28:32.4032113Z             {
2026-06-19T05:28:32.4032252Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4032366Z               "line": 1094
2026-06-19T05:28:32.4032470Z             },
2026-06-19T05:28:32.4032572Z             {
2026-06-19T05:28:32.4032723Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-19T05:28:32.4032833Z               "line": 44
2026-06-19T05:28:32.4032943Z             },
2026-06-19T05:28:32.4033047Z             {
2026-06-19T05:28:32.4033206Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-19T05:28:32.4033314Z               "line": 52
2026-06-19T05:28:32.4033418Z             },
2026-06-19T05:28:32.4033524Z             {
2026-06-19T05:28:32.4033669Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-19T05:28:32.4033773Z               "line": 57
2026-06-19T05:28:32.4033879Z             },
2026-06-19T05:28:32.4033974Z             {
2026-06-19T05:28:32.4034131Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-19T05:28:32.4034251Z               "line": 54
2026-06-19T05:28:32.4034350Z             }
2026-06-19T05:28:32.4034451Z           ]
2026-06-19T05:28:32.4034561Z         }
2026-06-19T05:28:32.4034660Z       }
2026-06-19T05:28:32.4034761Z     },
2026-06-19T05:28:32.4034852Z     {
2026-06-19T05:28:32.4035003Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-19T05:28:32.4035257Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-19T05:28:32.4035386Z       "requiredStages": [
2026-06-19T05:28:32.4035486Z         "impl",
2026-06-19T05:28:32.4035590Z         "unit"
2026-06-19T05:28:32.4035700Z       ],
2026-06-19T05:28:32.4035806Z       "stages": {
2026-06-19T05:28:32.4035914Z         "doc": {
2026-06-19T05:28:32.4036030Z           "complete": false,
2026-06-19T05:28:32.4036140Z           "evidence": []
2026-06-19T05:28:32.4036242Z         },
2026-06-19T05:28:32.4036342Z         "impl": {
2026-06-19T05:28:32.4036467Z           "complete": true,
2026-06-19T05:28:32.4036581Z           "evidence": [
2026-06-19T05:28:32.4036686Z             {
2026-06-19T05:28:32.4036835Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:28:32.4036953Z               "line": 26
2026-06-19T05:28:32.4037059Z             },
2026-06-19T05:28:32.4037262Z             {
2026-06-19T05:28:32.4037407Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:28:32.4037521Z               "line": 135
2026-06-19T05:28:32.4037625Z             },
2026-06-19T05:28:32.4037726Z             {
2026-06-19T05:28:32.4037882Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:28:32.4037984Z               "line": 26
2026-06-19T05:28:32.4038154Z             },
2026-06-19T05:28:32.4038260Z             {
2026-06-19T05:28:32.4038408Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:28:32.4038521Z               "line": 237
2026-06-19T05:28:32.4038612Z             }
2026-06-19T05:28:32.4038716Z           ]
2026-06-19T05:28:32.4038809Z         },
2026-06-19T05:28:32.4038914Z         "int": {
2026-06-19T05:28:32.4039124Z           "complete": false,
2026-06-19T05:28:32.4039229Z           "evidence": []
2026-06-19T05:28:32.4039334Z         },
2026-06-19T05:28:32.4039438Z         "unit": {
2026-06-19T05:28:32.4039563Z           "complete": true,
2026-06-19T05:28:32.4039682Z           "evidence": [
2026-06-19T05:28:32.4039786Z             {
2026-06-19T05:28:32.4039926Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:28:32.4040030Z               "line": 161
2026-06-19T05:28:32.4040134Z             },
2026-06-19T05:28:32.4040236Z             {
2026-06-19T05:28:32.4040379Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:28:32.4040502Z               "line": 170
2026-06-19T05:28:32.4040608Z             },
2026-06-19T05:28:32.4040707Z             {
2026-06-19T05:28:32.4040851Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:28:32.4040960Z               "line": 179
2026-06-19T05:28:32.4041065Z             },
2026-06-19T05:28:32.4041161Z             {
2026-06-19T05:28:32.4041293Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:28:32.4041402Z               "line": 190
2026-06-19T05:28:32.4041502Z             },
2026-06-19T05:28:32.4041601Z             {
2026-06-19T05:28:32.4041743Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:28:32.4041858Z               "line": 199
2026-06-19T05:28:32.4041963Z             },
2026-06-19T05:28:32.4042067Z             {
2026-06-19T05:28:32.4042206Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:28:32.4042310Z               "line": 216
2026-06-19T05:28:32.4042410Z             },
2026-06-19T05:28:32.4042512Z             {
2026-06-19T05:28:32.4042653Z               "path": "crates/spt-live/src/context.rs",
2026-06-19T05:28:32.4042764Z               "line": 242
2026-06-19T05:28:32.4042869Z             },
2026-06-19T05:28:32.4042959Z             {
2026-06-19T05:28:32.4043093Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:28:32.4043193Z               "line": 295
2026-06-19T05:28:32.4043297Z             },
2026-06-19T05:28:32.4043403Z             {
2026-06-19T05:28:32.4043545Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:28:32.4043651Z               "line": 244
2026-06-19T05:28:32.4043762Z             },
2026-06-19T05:28:32.4043865Z             {
2026-06-19T05:28:32.4044016Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:28:32.4044121Z               "line": 265
2026-06-19T05:28:32.4044224Z             },
2026-06-19T05:28:32.4044324Z             {
2026-06-19T05:28:32.4044482Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:28:32.4044591Z               "line": 293
2026-06-19T05:28:32.4044701Z             },
2026-06-19T05:28:32.4044802Z             {
2026-06-19T05:28:32.4044948Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:28:32.4045064Z               "line": 317
2026-06-19T05:28:32.4045164Z             },
2026-06-19T05:28:32.4045267Z             {
2026-06-19T05:28:32.4045412Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-19T05:28:32.4045531Z               "line": 327
2026-06-19T05:28:32.4045631Z             },
2026-06-19T05:28:32.4045846Z             {
2026-06-19T05:28:32.4046008Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:28:32.4046117Z               "line": 540
2026-06-19T05:28:32.4046226Z             }
2026-06-19T05:28:32.4046328Z           ]
2026-06-19T05:28:32.4046431Z         }
2026-06-19T05:28:32.4046532Z       }
2026-06-19T05:28:32.4046643Z     },
2026-06-19T05:28:32.4046742Z     {
2026-06-19T05:28:32.4046999Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-19T05:28:32.4047179Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-19T05:28:32.4047294Z       "requiredStages": [
2026-06-19T05:28:32.4047404Z         "impl",
2026-06-19T05:28:32.4047508Z         "unit"
2026-06-19T05:28:32.4047614Z       ],
2026-06-19T05:28:32.4047724Z       "stages": {
2026-06-19T05:28:32.4047822Z         "doc": {
2026-06-19T05:28:32.4047948Z           "complete": false,
2026-06-19T05:28:32.4048057Z           "evidence": []
2026-06-19T05:28:32.4048161Z         },
2026-06-19T05:28:32.4048263Z         "impl": {
2026-06-19T05:28:32.4048386Z           "complete": true,
2026-06-19T05:28:32.4048486Z           "evidence": [
2026-06-19T05:28:32.4048587Z             {
2026-06-19T05:28:32.4048734Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:28:32.4048844Z               "line": 25
2026-06-19T05:28:32.4049010Z             },
2026-06-19T05:28:32.4049105Z             {
2026-06-19T05:28:32.4049257Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:28:32.4049360Z               "line": 26
2026-06-19T05:28:32.4049469Z             },
2026-06-19T05:28:32.4049575Z             {
2026-06-19T05:28:32.4049707Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:28:32.4049827Z               "line": 159
2026-06-19T05:28:32.4049923Z             }
2026-06-19T05:28:32.4050027Z           ]
2026-06-19T05:28:32.4050133Z         },
2026-06-19T05:28:32.4050237Z         "int": {
2026-06-19T05:28:32.4050356Z           "complete": false,
2026-06-19T05:28:32.4050457Z           "evidence": []
2026-06-19T05:28:32.4050562Z         },
2026-06-19T05:28:32.4050661Z         "unit": {
2026-06-19T05:28:32.4050782Z           "complete": true,
2026-06-19T05:28:32.4050890Z           "evidence": [
2026-06-19T05:28:32.4050995Z             {
2026-06-19T05:28:32.4051130Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:28:32.4051238Z               "line": 188
2026-06-19T05:28:32.4051343Z             },
2026-06-19T05:28:32.4051445Z             {
2026-06-19T05:28:32.4051576Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:28:32.4051692Z               "line": 240
2026-06-19T05:28:32.4051793Z             },
2026-06-19T05:28:32.4051905Z             {
2026-06-19T05:28:32.4052034Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:28:32.4052143Z               "line": 186
2026-06-19T05:28:32.4052251Z             }
2026-06-19T05:28:32.4052356Z           ]
2026-06-19T05:28:32.4052456Z         }
2026-06-19T05:28:32.4052561Z       }
2026-06-19T05:28:32.4052665Z     },
2026-06-19T05:28:32.4052766Z     {
2026-06-19T05:28:32.4052899Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-19T05:28:32.4053095Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-19T05:28:32.4053218Z       "requiredStages": [
2026-06-19T05:28:32.4053324Z         "impl",
2026-06-19T05:28:32.4053424Z         "unit"
2026-06-19T05:28:32.4053533Z       ],
2026-06-19T05:28:32.4053639Z       "stages": {
2026-06-19T05:28:32.4053744Z         "doc": {
2026-06-19T05:28:32.4053862Z           "complete": false,
2026-06-19T05:28:32.4053973Z           "evidence": []
2026-06-19T05:28:32.4054082Z         },
2026-06-19T05:28:32.4054177Z         "impl": {
2026-06-19T05:28:32.4054302Z           "complete": true,
2026-06-19T05:28:32.4054411Z           "evidence": [
2026-06-19T05:28:32.4054515Z             {
2026-06-19T05:28:32.4054658Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:28:32.4054765Z               "line": 48
2026-06-19T05:28:32.4054869Z             },
2026-06-19T05:28:32.4055113Z             {
2026-06-19T05:28:32.4055266Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:28:32.4055371Z               "line": 55
2026-06-19T05:28:32.4055475Z             },
2026-06-19T05:28:32.4055581Z             {
2026-06-19T05:28:32.4055728Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:28:32.4055832Z               "line": 74
2026-06-19T05:28:32.4056038Z             },
2026-06-19T05:28:32.4056143Z             {
2026-06-19T05:28:32.4056372Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:28:32.4056486Z               "line": 91
2026-06-19T05:28:32.4056592Z             }
2026-06-19T05:28:32.4056696Z           ]
2026-06-19T05:28:32.4056801Z         },
2026-06-19T05:28:32.4056907Z         "int": {
2026-06-19T05:28:32.4057025Z           "complete": false,
2026-06-19T05:28:32.4057141Z           "evidence": []
2026-06-19T05:28:32.4057246Z         },
2026-06-19T05:28:32.4057358Z         "unit": {
2026-06-19T05:28:32.4057477Z           "complete": true,
2026-06-19T05:28:32.4057583Z           "evidence": [
2026-06-19T05:28:32.4057687Z             {
2026-06-19T05:28:32.4057826Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:28:32.4057931Z               "line": 149
2026-06-19T05:28:32.4058040Z             },
2026-06-19T05:28:32.4058141Z             {
2026-06-19T05:28:32.4058274Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:28:32.4058387Z               "line": 166
2026-06-19T05:28:32.4058484Z             },
2026-06-19T05:28:32.4058593Z             {
2026-06-19T05:28:32.4058721Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:28:32.4058832Z               "line": 176
2026-06-19T05:28:32.4059031Z             },
2026-06-19T05:28:32.4059128Z             {
2026-06-19T05:28:32.4059269Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:28:32.4059380Z               "line": 194
2026-06-19T05:28:32.4059476Z             },
2026-06-19T05:28:32.4059580Z             {
2026-06-19T05:28:32.4059722Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:28:32.4059841Z               "line": 207
2026-06-19T05:28:32.4059934Z             }
2026-06-19T05:28:32.4060034Z           ]
2026-06-19T05:28:32.4060140Z         }
2026-06-19T05:28:32.4060240Z       }
2026-06-19T05:28:32.4060339Z     },
2026-06-19T05:28:32.4060446Z     {
2026-06-19T05:28:32.4060596Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-19T05:28:32.4060812Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-19T05:28:32.4060935Z       "requiredStages": [
2026-06-19T05:28:32.4061036Z         "impl",
2026-06-19T05:28:32.4061145Z         "unit"
2026-06-19T05:28:32.4061245Z       ],
2026-06-19T05:28:32.4061347Z       "stages": {
2026-06-19T05:28:32.4061446Z         "doc": {
2026-06-19T05:28:32.4061560Z           "complete": false,
2026-06-19T05:28:32.4061676Z           "evidence": []
2026-06-19T05:28:32.4061775Z         },
2026-06-19T05:28:32.4061884Z         "impl": {
2026-06-19T05:28:32.4061990Z           "complete": true,
2026-06-19T05:28:32.4062099Z           "evidence": [
2026-06-19T05:28:32.4062204Z             {
2026-06-19T05:28:32.4062353Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4062470Z               "line": 466
2026-06-19T05:28:32.4062569Z             },
2026-06-19T05:28:32.4062675Z             {
2026-06-19T05:28:32.4062816Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:28:32.4062935Z               "line": 26
2026-06-19T05:28:32.4063045Z             }
2026-06-19T05:28:32.4063149Z           ]
2026-06-19T05:28:32.4063260Z         },
2026-06-19T05:28:32.4063359Z         "int": {
2026-06-19T05:28:32.4063483Z           "complete": false,
2026-06-19T05:28:32.4063589Z           "evidence": []
2026-06-19T05:28:32.4063698Z         },
2026-06-19T05:28:32.4063812Z         "unit": {
2026-06-19T05:28:32.4063923Z           "complete": true,
2026-06-19T05:28:32.4064031Z           "evidence": [
2026-06-19T05:28:32.4064238Z             {
2026-06-19T05:28:32.4064384Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:28:32.4064494Z               "line": 150
2026-06-19T05:28:32.4064600Z             },
2026-06-19T05:28:32.4064699Z             {
2026-06-19T05:28:32.4064839Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:28:32.4065061Z               "line": 208
2026-06-19T05:28:32.4065161Z             }
2026-06-19T05:28:32.4065265Z           ]
2026-06-19T05:28:32.4065363Z         }
2026-06-19T05:28:32.4065463Z       }
2026-06-19T05:28:32.4065559Z     },
2026-06-19T05:28:32.4065659Z     {
2026-06-19T05:28:32.4065812Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-19T05:28:32.4067194Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-19T05:28:32.4067333Z       "requiredStages": [
2026-06-19T05:28:32.4067444Z         "doc",
2026-06-19T05:28:32.4067537Z         "impl",
2026-06-19T05:28:32.4067638Z         "unit"
2026-06-19T05:28:32.4067739Z       ],
2026-06-19T05:28:32.4067871Z       "stages": {
2026-06-19T05:28:32.4067975Z         "doc": {
2026-06-19T05:28:32.4068095Z           "complete": true,
2026-06-19T05:28:32.4068214Z           "evidence": [
2026-06-19T05:28:32.4068318Z             {
2026-06-19T05:28:32.4068458Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4068562Z               "line": 214
2026-06-19T05:28:32.4068667Z             }
2026-06-19T05:28:32.4068763Z           ]
2026-06-19T05:28:32.4068867Z         },
2026-06-19T05:28:32.4069035Z         "impl": {
2026-06-19T05:28:32.4069163Z           "complete": true,
2026-06-19T05:28:32.4069306Z           "evidence": [
2026-06-19T05:28:32.4069411Z             {
2026-06-19T05:28:32.4069563Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4069665Z               "line": 56
2026-06-19T05:28:32.4069773Z             },
2026-06-19T05:28:32.4069878Z             {
2026-06-19T05:28:32.4070027Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4070140Z               "line": 575
2026-06-19T05:28:32.4070244Z             },
2026-06-19T05:28:32.4070344Z             {
2026-06-19T05:28:32.4070490Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4070604Z               "line": 36
2026-06-19T05:28:32.4070700Z             },
2026-06-19T05:28:32.4070805Z             {
2026-06-19T05:28:32.4070953Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4071057Z               "line": 59
2026-06-19T05:28:32.4071166Z             },
2026-06-19T05:28:32.4071268Z             {
2026-06-19T05:28:32.4071420Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4071543Z               "line": 83
2026-06-19T05:28:32.4071640Z             },
2026-06-19T05:28:32.4071739Z             {
2026-06-19T05:28:32.4071872Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4071992Z               "line": 140
2026-06-19T05:28:32.4072092Z             },
2026-06-19T05:28:32.4072207Z             {
2026-06-19T05:28:32.4072359Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4072468Z               "line": 159
2026-06-19T05:28:32.4072570Z             },
2026-06-19T05:28:32.4072673Z             {
2026-06-19T05:28:32.4072822Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4072928Z               "line": 384
2026-06-19T05:28:32.4073030Z             },
2026-06-19T05:28:32.4073134Z             {
2026-06-19T05:28:32.4073277Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4073385Z               "line": 535
2026-06-19T05:28:32.4073605Z             },
2026-06-19T05:28:32.4073709Z             {
2026-06-19T05:28:32.4073863Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4073977Z               "line": 581
2026-06-19T05:28:32.4074081Z             },
2026-06-19T05:28:32.4074183Z             {
2026-06-19T05:28:32.4074334Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4074540Z               "line": 300
2026-06-19T05:28:32.4074649Z             },
2026-06-19T05:28:32.4074754Z             {
2026-06-19T05:28:32.4074878Z               "path": "crates/spt/src/main.rs",
2026-06-19T05:28:32.4074987Z               "line": 42
2026-06-19T05:28:32.4075089Z             }
2026-06-19T05:28:32.4075198Z           ]
2026-06-19T05:28:32.4075298Z         },
2026-06-19T05:28:32.4075409Z         "int": {
2026-06-19T05:28:32.4075536Z           "complete": false,
2026-06-19T05:28:32.4075640Z           "evidence": []
2026-06-19T05:28:32.4075744Z         },
2026-06-19T05:28:32.4075858Z         "unit": {
2026-06-19T05:28:32.4075981Z           "complete": true,
2026-06-19T05:28:32.4076091Z           "evidence": [
2026-06-19T05:28:32.4076201Z             {
2026-06-19T05:28:32.4076357Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4076463Z               "line": 813
2026-06-19T05:28:32.4076567Z             },
2026-06-19T05:28:32.4076672Z             {
2026-06-19T05:28:32.4076825Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4076934Z               "line": 854
2026-06-19T05:28:32.4077035Z             },
2026-06-19T05:28:32.4077144Z             {
2026-06-19T05:28:32.4077282Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4077403Z               "line": 928
2026-06-19T05:28:32.4077502Z             }
2026-06-19T05:28:32.4077606Z           ]
2026-06-19T05:28:32.4077703Z         }
2026-06-19T05:28:32.4077811Z       }
2026-06-19T05:28:32.4077917Z     },
2026-06-19T05:28:32.4078009Z     {
2026-06-19T05:28:32.4078179Z       "id": "REQ-HAZARD-ENDPOINT-RUN-ATTACH-OUTPUT",
2026-06-19T05:28:32.4083233Z       "title": "A clean `spt rc` attach to a LIVE spt-hosted (`endpoint run`) harness must DELIVER the harness's PTY output. KEYSTONE — the operator's central 'attach shows no output' symptom, reproduced on the real dummy-harness fixture (v0.12.1 Wave 1) with NO death and NO wedge: bringup succeeds (online, harness pid alive + heartbeating, psyche hosted), the attach CONNECTS (PUMP_IPC_READER spawned, no RC_FAIL, holds the full window) — but receives EXACTLY 0 bytes over 10s of the harness's flushed [session.self] stdout. DISTINCT from REQ-HAZARD-VIEWER-CLOSE-DETACH (death) and REQ-HAZARD-ATTACH-WEDGE (dead-child backpressure): here the harness is ALIVE and the attach is a clean first subscribe. This BLOCKS the 'view is independent' invariant — re-attach is meaningless if a live endpoint-run harness shows nothing. KNOWN-GOOD (rules out 'no drain'): attach.rs `local_attach_via_loopback_conn_rides_the_same_pump` + `broker_spawns_the_pty_child_in_the_requested_cwd` prove the broker DOES drain+fan a `spawn_session` PTY child to a loopback attach over the SAME transport rc uses. Both spawn_session and endpoint-run's spawn_session_pid send KIND_SPAWN → the same dispatch_spawn (broker.rs:706/835) which starts the per-session drain+OutputLog — so the gap is NARROWER than 'no drain', endpoint-run-specific. Root candidates: (a) spawn_session_pid's SpawnReq stdio/env/cwd differs so the dummy's stdout isn't the captured ConPTY; (b) the harness stdout WRITE BLOCKS because the ConPTY buffer fills (drain not reading THIS pty) — explains alive-but-0-bytes; (c) ConPTY reader-park (KH 7.6) on this path; (d) `spt rc` resolve_session/subscribe for an endpoint-run session subscribes to the wrong/empty log. (v0.12.1)",
2026-06-19T05:28:32.4083445Z       "requiredStages": [
2026-06-19T05:28:32.4083544Z         "impl",
2026-06-19T05:28:32.4083652Z         "unit",
2026-06-19T05:28:32.4083753Z         "int"
2026-06-19T05:28:32.4083856Z       ],
2026-06-19T05:28:32.4084103Z       "stages": {
2026-06-19T05:28:32.4084213Z         "doc": {
2026-06-19T05:28:32.4084336Z           "complete": false,
2026-06-19T05:28:32.4084442Z           "evidence": []
2026-06-19T05:28:32.4084547Z         },
2026-06-19T05:28:32.4084656Z         "impl": {
2026-06-19T05:28:32.4084776Z           "complete": true,
2026-06-19T05:28:32.4084894Z           "evidence": [
2026-06-19T05:28:32.4085110Z             {
2026-06-19T05:28:32.4085266Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:28:32.4085377Z               "line": 106
2026-06-19T05:28:32.4085471Z             }
2026-06-19T05:28:32.4085571Z           ]
2026-06-19T05:28:32.4085677Z         },
2026-06-19T05:28:32.4085786Z         "int": {
2026-06-19T05:28:32.4085900Z           "complete": true,
2026-06-19T05:28:32.4086021Z           "evidence": [
2026-06-19T05:28:32.4086120Z             {
2026-06-19T05:28:32.4086276Z               "path": "crates/spt/tests/dummy_harness_e2e.rs",
2026-06-19T05:28:32.4086395Z               "line": 296
2026-06-19T05:28:32.4086498Z             }
2026-06-19T05:28:32.4086598Z           ]
2026-06-19T05:28:32.4086699Z         },
2026-06-19T05:28:32.4086812Z         "unit": {
2026-06-19T05:28:32.4086927Z           "complete": true,
2026-06-19T05:28:32.4087042Z           "evidence": [
2026-06-19T05:28:32.4087146Z             {
2026-06-19T05:28:32.4087310Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.4087424Z               "line": 463
2026-06-19T05:28:32.4087523Z             }
2026-06-19T05:28:32.4087629Z           ]
2026-06-19T05:28:32.4087728Z         }
2026-06-19T05:28:32.4087838Z       }
2026-06-19T05:28:32.4087939Z     },
2026-06-19T05:28:32.4088048Z     {
2026-06-19T05:28:32.4088176Z       "id": "REQ-HAZARD-ENV-SUBST",
2026-06-19T05:28:32.4091620Z       "title": "`spt endpoint run` HONORS manifest [env.<VAR>] direction=inject values (with {key} substitution) on the spt-hosted spawn. Today only the [session.self] command ARGV is {id}-substituted; the [env] inject value is NEITHER substituted NOR applied — manifest.schema.json promises EnvVar.value = 'Value to inject (with substitution)' but prepare_harness_spawn fills only argv and SpawnReq carries no env, so a [env.SPT_ENDPOINT_ID].value='{id}' arrives EMPTY. A FLAGLESS harness (bare `claude`, no argv slot for {id}) then routes the id via [env] → empty → SessionStart sees empty $SPT_ENDPOINT_ID → seeds-by-PPID instead of binding → ZERO perch → NO_PERCH (the actual wall-b bind blocker; perri hard-repro'd). SILENT failure (empty inject, no error). FIX (doyle ruled a): fill every [env] inject value from the SAME {key} catalog as argv/role (mirror F-009 TEMPLATE fill, whole-string fill_template for an env value), thread it through SpawnReq.env → the broker sets it on the spawned PTY child. Correctness fix — schema already promises it, NO manifest change, NO new binary. PAIRS with REQ-SEND-SPT-HOSTED to make endpoint run fully work. doyle F-013. (post-v0.10.0)",
2026-06-19T05:28:32.4091768Z       "requiredStages": [
2026-06-19T05:28:32.4091901Z         "impl",
2026-06-19T05:28:32.4091995Z         "unit",
2026-06-19T05:28:32.4092102Z         "int"
2026-06-19T05:28:32.4092206Z       ],
2026-06-19T05:28:32.4092310Z       "stages": {
2026-06-19T05:28:32.4092412Z         "doc": {
2026-06-19T05:28:32.4092526Z           "complete": false,
2026-06-19T05:28:32.4092644Z           "evidence": []
2026-06-19T05:28:32.4092769Z         },
2026-06-19T05:28:32.4092878Z         "impl": {
2026-06-19T05:28:32.4092983Z           "complete": true,
2026-06-19T05:28:32.4093089Z           "evidence": [
2026-06-19T05:28:32.4093202Z             {
2026-06-19T05:28:32.4093361Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:28:32.4093479Z               "line": 102
2026-06-19T05:28:32.4095961Z             },
2026-06-19T05:28:32.4096098Z             {
2026-06-19T05:28:32.4096252Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:28:32.4096374Z               "line": 134
2026-06-19T05:28:32.4096624Z             }
2026-06-19T05:28:32.4096722Z           ]
2026-06-19T05:28:32.4096821Z         },
2026-06-19T05:28:32.4096927Z         "int": {
2026-06-19T05:28:32.4097044Z           "complete": true,
2026-06-19T05:28:32.4097148Z           "evidence": [
2026-06-19T05:28:32.4097254Z             {
2026-06-19T05:28:32.4097415Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:28:32.4097616Z               "line": 310
2026-06-19T05:28:32.4097730Z             },
2026-06-19T05:28:32.4097826Z             {
2026-06-19T05:28:32.4097989Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:28:32.4098102Z               "line": 504
2026-06-19T05:28:32.4098203Z             }
2026-06-19T05:28:32.4098313Z           ]
2026-06-19T05:28:32.4098412Z         },
2026-06-19T05:28:32.4098518Z         "unit": {
2026-06-19T05:28:32.4098637Z           "complete": true,
2026-06-19T05:28:32.4098746Z           "evidence": [
2026-06-19T05:28:32.4098852Z             {
2026-06-19T05:28:32.4099086Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:28:32.4099204Z               "line": 205
2026-06-19T05:28:32.4099309Z             }
2026-06-19T05:28:32.4099410Z           ]
2026-06-19T05:28:32.4099510Z         }
2026-06-19T05:28:32.4099608Z       }
2026-06-19T05:28:32.4099708Z     },
2026-06-19T05:28:32.4099809Z     {
2026-06-19T05:28:32.4099965Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-19T05:28:32.4101777Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-19T05:28:32.4101924Z       "requiredStages": [
2026-06-19T05:28:32.4102030Z         "impl",
2026-06-19T05:28:32.4102137Z         "unit"
2026-06-19T05:28:32.4102241Z       ],
2026-06-19T05:28:32.4102347Z       "stages": {
2026-06-19T05:28:32.4102456Z         "doc": {
2026-06-19T05:28:32.4102575Z           "complete": false,
2026-06-19T05:28:32.4102714Z           "evidence": []
2026-06-19T05:28:32.4102813Z         },
2026-06-19T05:28:32.4102924Z         "impl": {
2026-06-19T05:28:32.4103038Z           "complete": true,
2026-06-19T05:28:32.4103147Z           "evidence": [
2026-06-19T05:28:32.4103253Z             {
2026-06-19T05:28:32.4103415Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4103524Z               "line": 31
2026-06-19T05:28:32.4103630Z             }
2026-06-19T05:28:32.4103730Z           ]
2026-06-19T05:28:32.4103834Z         },
2026-06-19T05:28:32.4103936Z         "int": {
2026-06-19T05:28:32.4104058Z           "complete": false,
2026-06-19T05:28:32.4104163Z           "evidence": []
2026-06-19T05:28:32.4104269Z         },
2026-06-19T05:28:32.4104382Z         "unit": {
2026-06-19T05:28:32.4104493Z           "complete": true,
2026-06-19T05:28:32.4104608Z           "evidence": [
2026-06-19T05:28:32.4104711Z             {
2026-06-19T05:28:32.4104863Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4104976Z               "line": 181
2026-06-19T05:28:32.4105075Z             }
2026-06-19T05:28:32.4105171Z           ]
2026-06-19T05:28:32.4105277Z         }
2026-06-19T05:28:32.4105380Z       }
2026-06-19T05:28:32.4105480Z     },
2026-06-19T05:28:32.4105582Z     {
2026-06-19T05:28:32.4105733Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-19T05:28:32.4105925Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-19T05:28:32.4106048Z       "requiredStages": [
2026-06-19T05:28:32.4106154Z         "impl",
2026-06-19T05:28:32.4106263Z         "unit"
2026-06-19T05:28:32.4106367Z       ],
2026-06-19T05:28:32.4106611Z       "stages": {
2026-06-19T05:28:32.4106715Z         "doc": {
2026-06-19T05:28:32.4106831Z           "complete": false,
2026-06-19T05:28:32.4106930Z           "evidence": []
2026-06-19T05:28:32.4107035Z         },
2026-06-19T05:28:32.4107136Z         "impl": {
2026-06-19T05:28:32.4107245Z           "complete": true,
2026-06-19T05:28:32.4107358Z           "evidence": [
2026-06-19T05:28:32.4107543Z             {
2026-06-19T05:28:32.4107704Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4107824Z               "line": 49
2026-06-19T05:28:32.4107924Z             },
2026-06-19T05:28:32.4108033Z             {
2026-06-19T05:28:32.4108181Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4108285Z               "line": 81
2026-06-19T05:28:32.4108387Z             }
2026-06-19T05:28:32.4108487Z           ]
2026-06-19T05:28:32.4108581Z         },
2026-06-19T05:28:32.4108677Z         "int": {
2026-06-19T05:28:32.4108801Z           "complete": false,
2026-06-19T05:28:32.4108920Z           "evidence": []
2026-06-19T05:28:32.4109097Z         },
2026-06-19T05:28:32.4109192Z         "unit": {
2026-06-19T05:28:32.4109302Z           "complete": true,
2026-06-19T05:28:32.4109417Z           "evidence": [
2026-06-19T05:28:32.4109516Z             {
2026-06-19T05:28:32.4109661Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4109769Z               "line": 156
2026-06-19T05:28:32.4109874Z             },
2026-06-19T05:28:32.4109970Z             {
2026-06-19T05:28:32.4110117Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4110235Z               "line": 173
2026-06-19T05:28:32.4110321Z             },
2026-06-19T05:28:32.4110427Z             {
2026-06-19T05:28:32.4110573Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4110680Z               "line": 196
2026-06-19T05:28:32.4110784Z             }
2026-06-19T05:28:32.4110888Z           ]
2026-06-19T05:28:32.4110989Z         }
2026-06-19T05:28:32.4111094Z       }
2026-06-19T05:28:32.4111193Z     },
2026-06-19T05:28:32.4111285Z     {
2026-06-19T05:28:32.4111437Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-19T05:28:32.4111647Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-19T05:28:32.4111752Z       "requiredStages": [
2026-06-19T05:28:32.4111866Z         "impl",
2026-06-19T05:28:32.4111962Z         "unit"
2026-06-19T05:28:32.4112065Z       ],
2026-06-19T05:28:32.4112171Z       "stages": {
2026-06-19T05:28:32.4112277Z         "doc": {
2026-06-19T05:28:32.4112394Z           "complete": false,
2026-06-19T05:28:32.4112498Z           "evidence": []
2026-06-19T05:28:32.4112604Z         },
2026-06-19T05:28:32.4112711Z         "impl": {
2026-06-19T05:28:32.4112830Z           "complete": true,
2026-06-19T05:28:32.4112936Z           "evidence": [
2026-06-19T05:28:32.4113040Z             {
2026-06-19T05:28:32.4113179Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4113298Z               "line": 120
2026-06-19T05:28:32.4113402Z             }
2026-06-19T05:28:32.4113503Z           ]
2026-06-19T05:28:32.4113608Z         },
2026-06-19T05:28:32.4113712Z         "int": {
2026-06-19T05:28:32.4113837Z           "complete": false,
2026-06-19T05:28:32.4113942Z           "evidence": []
2026-06-19T05:28:32.4114051Z         },
2026-06-19T05:28:32.4114162Z         "unit": {
2026-06-19T05:28:32.4114270Z           "complete": true,
2026-06-19T05:28:32.4114385Z           "evidence": [
2026-06-19T05:28:32.4114486Z             {
2026-06-19T05:28:32.4114642Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4114748Z               "line": 212
2026-06-19T05:28:32.4114844Z             },
2026-06-19T05:28:32.4114952Z             {
2026-06-19T05:28:32.4115091Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4115196Z               "line": 221
2026-06-19T05:28:32.4115295Z             },
2026-06-19T05:28:32.4115399Z             {
2026-06-19T05:28:32.4115663Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4115765Z               "line": 229
2026-06-19T05:28:32.4115870Z             },
2026-06-19T05:28:32.4115974Z             {
2026-06-19T05:28:32.4116127Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4116241Z               "line": 239
2026-06-19T05:28:32.4116442Z             },
2026-06-19T05:28:32.4116551Z             {
2026-06-19T05:28:32.4116689Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-19T05:28:32.4116804Z               "line": 249
2026-06-19T05:28:32.4116894Z             }
2026-06-19T05:28:32.4117000Z           ]
2026-06-19T05:28:32.4117100Z         }
2026-06-19T05:28:32.4117204Z       }
2026-06-19T05:28:32.4117305Z     },
2026-06-19T05:28:32.4117400Z     {
2026-06-19T05:28:32.4117548Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-19T05:28:32.4117734Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-19T05:28:32.4117861Z       "requiredStages": [
2026-06-19T05:28:32.4117966Z         "impl",
2026-06-19T05:28:32.4118061Z         "unit"
2026-06-19T05:28:32.4118169Z       ],
2026-06-19T05:28:32.4118264Z       "stages": {
2026-06-19T05:28:32.4118370Z         "doc": {
2026-06-19T05:28:32.4118479Z           "complete": false,
2026-06-19T05:28:32.4118598Z           "evidence": []
2026-06-19T05:28:32.4118694Z         },
2026-06-19T05:28:32.4118794Z         "impl": {
2026-06-19T05:28:32.4118908Z           "complete": true,
2026-06-19T05:28:32.4119089Z           "evidence": [
2026-06-19T05:28:32.4119193Z             {
2026-06-19T05:28:32.4119323Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:28:32.4119433Z               "line": 14
2026-06-19T05:28:32.4119533Z             },
2026-06-19T05:28:32.4119638Z             {
2026-06-19T05:28:32.4119781Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:28:32.4119891Z               "line": 63
2026-06-19T05:28:32.4119995Z             }
2026-06-19T05:28:32.4120096Z           ]
2026-06-19T05:28:32.4120196Z         },
2026-06-19T05:28:32.4120306Z         "int": {
2026-06-19T05:28:32.4120429Z           "complete": false,
2026-06-19T05:28:32.4120530Z           "evidence": []
2026-06-19T05:28:32.4120635Z         },
2026-06-19T05:28:32.4120728Z         "unit": {
2026-06-19T05:28:32.4120833Z           "complete": true,
2026-06-19T05:28:32.4120953Z           "evidence": [
2026-06-19T05:28:32.4121048Z             {
2026-06-19T05:28:32.4121191Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:28:32.4121306Z               "line": 164
2026-06-19T05:28:32.4121410Z             },
2026-06-19T05:28:32.4121511Z             {
2026-06-19T05:28:32.4121645Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:28:32.4121753Z               "line": 198
2026-06-19T05:28:32.4121859Z             },
2026-06-19T05:28:32.4121963Z             {
2026-06-19T05:28:32.4122102Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:28:32.4122217Z               "line": 220
2026-06-19T05:28:32.4122322Z             }
2026-06-19T05:28:32.4122417Z           ]
2026-06-19T05:28:32.4122522Z         }
2026-06-19T05:28:32.4122625Z       }
2026-06-19T05:28:32.4122727Z     },
2026-06-19T05:28:32.4122828Z     {
2026-06-19T05:28:32.4122950Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-19T05:28:32.4124301Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-19T05:28:32.4124421Z       "requiredStages": [],
2026-06-19T05:28:32.4124531Z       "stages": {
2026-06-19T05:28:32.4124640Z         "doc": {
2026-06-19T05:28:32.4124755Z           "complete": true,
2026-06-19T05:28:32.4124978Z           "evidence": [
2026-06-19T05:28:32.4125080Z             {
2026-06-19T05:28:32.4125212Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4125318Z               "line": 165
2026-06-19T05:28:32.4125427Z             }
2026-06-19T05:28:32.4125531Z           ]
2026-06-19T05:28:32.4125628Z         },
2026-06-19T05:28:32.4125733Z         "impl": {
2026-06-19T05:28:32.4125955Z           "complete": false,
2026-06-19T05:28:32.4126064Z           "evidence": []
2026-06-19T05:28:32.4126162Z         },
2026-06-19T05:28:32.4126257Z         "int": {
2026-06-19T05:28:32.4126368Z           "complete": false,
2026-06-19T05:28:32.4126477Z           "evidence": []
2026-06-19T05:28:32.4126586Z         },
2026-06-19T05:28:32.4126687Z         "unit": {
2026-06-19T05:28:32.4126805Z           "complete": false,
2026-06-19T05:28:32.4126911Z           "evidence": []
2026-06-19T05:28:32.4127007Z         }
2026-06-19T05:28:32.4127111Z       }
2026-06-19T05:28:32.4127201Z     },
2026-06-19T05:28:32.4127303Z     {
2026-06-19T05:28:32.4127449Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-19T05:28:32.4127702Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-19T05:28:32.4127802Z       "requiredStages": [
2026-06-19T05:28:32.4127909Z         "impl",
2026-06-19T05:28:32.4128012Z         "unit"
2026-06-19T05:28:32.4128113Z       ],
2026-06-19T05:28:32.4128228Z       "stages": {
2026-06-19T05:28:32.4128332Z         "doc": {
2026-06-19T05:28:32.4128450Z           "complete": false,
2026-06-19T05:28:32.4128555Z           "evidence": []
2026-06-19T05:28:32.4128649Z         },
2026-06-19T05:28:32.4128753Z         "impl": {
2026-06-19T05:28:32.4128867Z           "complete": true,
2026-06-19T05:28:32.4129063Z           "evidence": [
2026-06-19T05:28:32.4129158Z             {
2026-06-19T05:28:32.4129302Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:28:32.4129406Z               "line": 76
2026-06-19T05:28:32.4129512Z             },
2026-06-19T05:28:32.4129626Z             {
2026-06-19T05:28:32.4129758Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:28:32.4129874Z               "line": 167
2026-06-19T05:28:32.4129964Z             },
2026-06-19T05:28:32.4130068Z             {
2026-06-19T05:28:32.4130208Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:28:32.4130317Z               "line": 233
2026-06-19T05:28:32.4130432Z             },
2026-06-19T05:28:32.4130532Z             {
2026-06-19T05:28:32.4130670Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:28:32.4130771Z               "line": 272
2026-06-19T05:28:32.4130880Z             }
2026-06-19T05:28:32.4130980Z           ]
2026-06-19T05:28:32.4131086Z         },
2026-06-19T05:28:32.4131190Z         "int": {
2026-06-19T05:28:32.4131303Z           "complete": false,
2026-06-19T05:28:32.4131417Z           "evidence": []
2026-06-19T05:28:32.4131509Z         },
2026-06-19T05:28:32.4131613Z         "unit": {
2026-06-19T05:28:32.4131727Z           "complete": true,
2026-06-19T05:28:32.4131828Z           "evidence": [
2026-06-19T05:28:32.4131937Z             {
2026-06-19T05:28:32.4132072Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:28:32.4132176Z               "line": 321
2026-06-19T05:28:32.4132280Z             },
2026-06-19T05:28:32.4132376Z             {
2026-06-19T05:28:32.4132509Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:28:32.4132628Z               "line": 329
2026-06-19T05:28:32.4132734Z             },
2026-06-19T05:28:32.4132833Z             {
2026-06-19T05:28:32.4132977Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:28:32.4133087Z               "line": 356
2026-06-19T05:28:32.4133190Z             },
2026-06-19T05:28:32.4133292Z             {
2026-06-19T05:28:32.4133430Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:28:32.4133533Z               "line": 395
2026-06-19T05:28:32.4133633Z             },
2026-06-19T05:28:32.4133743Z             {
2026-06-19T05:28:32.4133984Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:28:32.4134100Z               "line": 406
2026-06-19T05:28:32.4134203Z             },
2026-06-19T05:28:32.4134304Z             {
2026-06-19T05:28:32.4134447Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:28:32.4134561Z               "line": 418
2026-06-19T05:28:32.4134771Z             },
2026-06-19T05:28:32.4134870Z             {
2026-06-19T05:28:32.4135015Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-19T05:28:32.4135119Z               "line": 442
2026-06-19T05:28:32.4135223Z             }
2026-06-19T05:28:32.4135315Z           ]
2026-06-19T05:28:32.4135405Z         }
2026-06-19T05:28:32.4135510Z       }
2026-06-19T05:28:32.4135601Z     },
2026-06-19T05:28:32.4135701Z     {
2026-06-19T05:28:32.4135824Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-19T05:28:32.4135997Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-19T05:28:32.4136125Z       "requiredStages": [
2026-06-19T05:28:32.4136217Z         "impl",
2026-06-19T05:28:32.4136326Z         "int"
2026-06-19T05:28:32.4136424Z       ],
2026-06-19T05:28:32.4136534Z       "stages": {
2026-06-19T05:28:32.4136643Z         "doc": {
2026-06-19T05:28:32.4136765Z           "complete": false,
2026-06-19T05:28:32.4136880Z           "evidence": []
2026-06-19T05:28:32.4136981Z         },
2026-06-19T05:28:32.4137089Z         "impl": {
2026-06-19T05:28:32.4137200Z           "complete": true,
2026-06-19T05:28:32.4137315Z           "evidence": [
2026-06-19T05:28:32.4137413Z             {
2026-06-19T05:28:32.4137562Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.4137671Z               "line": 22
2026-06-19T05:28:32.4137776Z             }
2026-06-19T05:28:32.4137882Z           ]
2026-06-19T05:28:32.4137982Z         },
2026-06-19T05:28:32.4138086Z         "int": {
2026-06-19T05:28:32.4138197Z           "complete": true,
2026-06-19T05:28:32.4138300Z           "evidence": [
2026-06-19T05:28:32.4138405Z             {
2026-06-19T05:28:32.4138554Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-19T05:28:32.4138668Z               "line": 18
2026-06-19T05:28:32.4138769Z             }
2026-06-19T05:28:32.4138878Z           ]
2026-06-19T05:28:32.4139052Z         },
2026-06-19T05:28:32.4139153Z         "unit": {
2026-06-19T05:28:32.4139275Z           "complete": false,
2026-06-19T05:28:32.4139379Z           "evidence": []
2026-06-19T05:28:32.4139480Z         }
2026-06-19T05:28:32.4139580Z       }
2026-06-19T05:28:32.4139679Z     },
2026-06-19T05:28:32.4139781Z     {
2026-06-19T05:28:32.4139928Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-19T05:28:32.4140157Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-19T05:28:32.4140261Z       "requiredStages": [
2026-06-19T05:28:32.4140372Z         "impl",
2026-06-19T05:28:32.4140477Z         "unit"
2026-06-19T05:28:32.4140581Z       ],
2026-06-19T05:28:32.4140691Z       "stages": {
2026-06-19T05:28:32.4140796Z         "doc": {
2026-06-19T05:28:32.4140925Z           "complete": false,
2026-06-19T05:28:32.4141026Z           "evidence": []
2026-06-19T05:28:32.4141129Z         },
2026-06-19T05:28:32.4141239Z         "impl": {
2026-06-19T05:28:32.4141360Z           "complete": true,
2026-06-19T05:28:32.4141468Z           "evidence": [
2026-06-19T05:28:32.4141569Z             {
2026-06-19T05:28:32.4141717Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4141825Z               "line": 465
2026-06-19T05:28:32.4141934Z             },
2026-06-19T05:28:32.4142035Z             {
2026-06-19T05:28:32.4142182Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:28:32.4142302Z               "line": 27
2026-06-19T05:28:32.4142398Z             }
2026-06-19T05:28:32.4142497Z           ]
2026-06-19T05:28:32.4142593Z         },
2026-06-19T05:28:32.4142703Z         "int": {
2026-06-19T05:28:32.4142807Z           "complete": false,
2026-06-19T05:28:32.4143027Z           "evidence": []
2026-06-19T05:28:32.4143131Z         },
2026-06-19T05:28:32.4143232Z         "unit": {
2026-06-19T05:28:32.4143347Z           "complete": true,
2026-06-19T05:28:32.4143446Z           "evidence": [
2026-06-19T05:28:32.4143551Z             {
2026-06-19T05:28:32.4143704Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4143822Z               "line": 990
2026-06-19T05:28:32.4144018Z             },
2026-06-19T05:28:32.4144117Z             {
2026-06-19T05:28:32.4144265Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:28:32.4144368Z               "line": 181
2026-06-19T05:28:32.4144477Z             }
2026-06-19T05:28:32.4144582Z           ]
2026-06-19T05:28:32.4144683Z         }
2026-06-19T05:28:32.4144796Z       }
2026-06-19T05:28:32.4144897Z     },
2026-06-19T05:28:32.4144998Z     {
2026-06-19T05:28:32.4145140Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-19T05:28:32.4145341Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-19T05:28:32.4145460Z       "requiredStages": [
2026-06-19T05:28:32.4145570Z         "impl",
2026-06-19T05:28:32.4145670Z         "unit"
2026-06-19T05:28:32.4145775Z       ],
2026-06-19T05:28:32.4145885Z       "stages": {
2026-06-19T05:28:32.4145989Z         "doc": {
2026-06-19T05:28:32.4146108Z           "complete": false,
2026-06-19T05:28:32.4146223Z           "evidence": []
2026-06-19T05:28:32.4146337Z         },
2026-06-19T05:28:32.4146448Z         "impl": {
2026-06-19T05:28:32.4146566Z           "complete": true,
2026-06-19T05:28:32.4146676Z           "evidence": [
2026-06-19T05:28:32.4146777Z             {
2026-06-19T05:28:32.4146923Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.4147032Z               "line": 73
2026-06-19T05:28:32.4147142Z             },
2026-06-19T05:28:32.4147250Z             {
2026-06-19T05:28:32.4147397Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.4147512Z               "line": 972
2026-06-19T05:28:32.4147625Z             },
2026-06-19T05:28:32.4147731Z             {
2026-06-19T05:28:32.4147875Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:28:32.4147978Z               "line": 20
2026-06-19T05:28:32.4148089Z             },
2026-06-19T05:28:32.4148189Z             {
2026-06-19T05:28:32.4148331Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:28:32.4148442Z               "line": 100
2026-06-19T05:28:32.4148551Z             },
2026-06-19T05:28:32.4148651Z             {
2026-06-19T05:28:32.4148785Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:28:32.4148885Z               "line": 577
2026-06-19T05:28:32.4149067Z             },
2026-06-19T05:28:32.4149180Z             {
2026-06-19T05:28:32.4149325Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-19T05:28:32.4149429Z               "line": 68
2026-06-19T05:28:32.4149532Z             },
2026-06-19T05:28:32.4149637Z             {
2026-06-19T05:28:32.4149816Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-19T05:28:32.4149949Z               "line": 80
2026-06-19T05:28:32.4150060Z             }
2026-06-19T05:28:32.4150159Z           ]
2026-06-19T05:28:32.4150269Z         },
2026-06-19T05:28:32.4150369Z         "int": {
2026-06-19T05:28:32.4150488Z           "complete": true,
2026-06-19T05:28:32.4150603Z           "evidence": [
2026-06-19T05:28:32.4150703Z             {
2026-06-19T05:28:32.4150845Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-19T05:28:32.4150956Z               "line": 44
2026-06-19T05:28:32.4151060Z             }
2026-06-19T05:28:32.4151160Z           ]
2026-06-19T05:28:32.4151266Z         },
2026-06-19T05:28:32.4151380Z         "unit": {
2026-06-19T05:28:32.4151485Z           "complete": true,
2026-06-19T05:28:32.4151596Z           "evidence": [
2026-06-19T05:28:32.4151694Z             {
2026-06-19T05:28:32.4151847Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.4151958Z               "line": 1181
2026-06-19T05:28:32.4152172Z             },
2026-06-19T05:28:32.4152278Z             {
2026-06-19T05:28:32.4152428Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.4152547Z               "line": 1197
2026-06-19T05:28:32.4152648Z             },
2026-06-19T05:28:32.4152752Z             {
2026-06-19T05:28:32.4152896Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.4153118Z               "line": 1563
2026-06-19T05:28:32.4153234Z             },
2026-06-19T05:28:32.4153325Z             {
2026-06-19T05:28:32.4153463Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:28:32.4153572Z               "line": 152
2026-06-19T05:28:32.4153677Z             },
2026-06-19T05:28:32.4153782Z             {
2026-06-19T05:28:32.4153930Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:28:32.4154044Z               "line": 175
2026-06-19T05:28:32.4154146Z             },
2026-06-19T05:28:32.4154250Z             {
2026-06-19T05:28:32.4154387Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:28:32.4154503Z               "line": 186
2026-06-19T05:28:32.4154607Z             },
2026-06-19T05:28:32.4154706Z             {
2026-06-19T05:28:32.4154849Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:28:32.4154952Z               "line": 202
2026-06-19T05:28:32.4155066Z             },
2026-06-19T05:28:32.4155167Z             {
2026-06-19T05:28:32.4155305Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-19T05:28:32.4155414Z               "line": 216
2026-06-19T05:28:32.4155525Z             },
2026-06-19T05:28:32.4155629Z             {
2026-06-19T05:28:32.4155772Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-19T05:28:32.4155891Z               "line": 137
2026-06-19T05:28:32.4155990Z             },
2026-06-19T05:28:32.4156101Z             {
2026-06-19T05:28:32.4156339Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4156454Z               "line": 7998
2026-06-19T05:28:32.4156573Z             },
2026-06-19T05:28:32.4156673Z             {
2026-06-19T05:28:32.4156811Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-19T05:28:32.4156926Z               "line": 30
2026-06-19T05:28:32.4157023Z             },
2026-06-19T05:28:32.4157131Z             {
2026-06-19T05:28:32.4157259Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-19T05:28:32.4157375Z               "line": 73
2026-06-19T05:28:32.4157479Z             }
2026-06-19T05:28:32.4157582Z           ]
2026-06-19T05:28:32.4157683Z         }
2026-06-19T05:28:32.4157786Z       }
2026-06-19T05:28:32.4157890Z     },
2026-06-19T05:28:32.4157991Z     {
2026-06-19T05:28:32.4158148Z       "id": "REQ-HAZARD-HOSTED-LIVENESS-RECONCILE",
2026-06-19T05:28:32.4162273Z       "title": "B2 KEYSTONE: a daemon-hosted (spt-hosted) endpoint's info.json status is RECONCILED to real liveness, not left latched online. The broker exit-waiter (broker.rs:889-910) reaps its in-mem session table + emits ExitEvent but NEVER touches info.json; lifecycle::mark_offline only fires on Psyche teardown — so a dead/exited harness (operator closed the tab) stays status=online forever (is_perch_alive returns ONLINE for daemon-hosted, liveness.rs:80-93). FIX (doyle ruled PULL-PRIMARY — the live-status analog of REQ-HAZARD-ROSTER-GHOST): the livehost reconcile loop (reconcile_once livehost.rs:226-313) queries the broker's live session set (KIND_SESSIONS) each tick and, for any status=online live_agent perch PAST the boot grace whose endpoint has NO live broker session, marks it offline (lifecycle::mark_offline → status=offline → is_perch_alive=false). GATED on spt-hosted (controllable==Some(true)) so a HARNESS-HOSTED relay live agent (api listen, legitimately online with no broker session) is NEVER mis-marked. Crash-robust + self-healing on the next tick (clear-on-event is not crash-robust alone). PUSH (brain ExitEvent→mark_offline) is an OPTIONAL fast-path only if the daemon brain is reliably subscribed to all hosted sessions; correctness rides the pull. Broker stays stateless (ADR-0004 §B — brain owns the info.json write). (v0.12.0)",
2026-06-19T05:28:32.4162556Z       "requiredStages": [
2026-06-19T05:28:32.4162660Z         "impl",
2026-06-19T05:28:32.4162762Z         "unit",
2026-06-19T05:28:32.4162866Z         "int"
2026-06-19T05:28:32.4162969Z       ],
2026-06-19T05:28:32.4163074Z       "stages": {
2026-06-19T05:28:32.4163293Z         "doc": {
2026-06-19T05:28:32.4163417Z           "complete": false,
2026-06-19T05:28:32.4163527Z           "evidence": []
2026-06-19T05:28:32.4163631Z         },
2026-06-19T05:28:32.4163737Z         "impl": {
2026-06-19T05:28:32.4163861Z           "complete": true,
2026-06-19T05:28:32.4163980Z           "evidence": [
2026-06-19T05:28:32.4164071Z             {
2026-06-19T05:28:32.4164228Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4164332Z               "line": 510
2026-06-19T05:28:32.4164434Z             },
2026-06-19T05:28:32.4164543Z             {
2026-06-19T05:28:32.4164720Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4164847Z               "line": 692
2026-06-19T05:28:32.4164948Z             }
2026-06-19T05:28:32.4165054Z           ]
2026-06-19T05:28:32.4165152Z         },
2026-06-19T05:28:32.4165252Z         "int": {
2026-06-19T05:28:32.4165371Z           "complete": true,
2026-06-19T05:28:32.4165484Z           "evidence": [
2026-06-19T05:28:32.4165578Z             {
2026-06-19T05:28:32.4165727Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4165846Z               "line": 1060
2026-06-19T05:28:32.4165946Z             },
2026-06-19T05:28:32.4166051Z             {
2026-06-19T05:28:32.4166203Z               "path": "crates/spt/tests/attach_wedge_e2e.rs",
2026-06-19T05:28:32.4166304Z               "line": 312
2026-06-19T05:28:32.4166414Z             }
2026-06-19T05:28:32.4166513Z           ]
2026-06-19T05:28:32.4166619Z         },
2026-06-19T05:28:32.4166728Z         "unit": {
2026-06-19T05:28:32.4166856Z           "complete": true,
2026-06-19T05:28:32.4166972Z           "evidence": [
2026-06-19T05:28:32.4167081Z             {
2026-06-19T05:28:32.4167229Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4167334Z               "line": 809
2026-06-19T05:28:32.4167428Z             }
2026-06-19T05:28:32.4167534Z           ]
2026-06-19T05:28:32.4167639Z         }
2026-06-19T05:28:32.4167743Z       }
2026-06-19T05:28:32.4167844Z     },
2026-06-19T05:28:32.4167945Z     {
2026-06-19T05:28:32.4168072Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-19T05:28:32.4168356Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-19T05:28:32.4168464Z       "requiredStages": [
2026-06-19T05:28:32.4168575Z         "impl",
2026-06-19T05:28:32.4168680Z         "unit"
2026-06-19T05:28:32.4168774Z       ],
2026-06-19T05:28:32.4168885Z       "stages": {
2026-06-19T05:28:32.4169061Z         "doc": {
2026-06-19T05:28:32.4169186Z           "complete": true,
2026-06-19T05:28:32.4169295Z           "evidence": [
2026-06-19T05:28:32.4169399Z             {
2026-06-19T05:28:32.4169529Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4169638Z               "line": 133
2026-06-19T05:28:32.4169747Z             }
2026-06-19T05:28:32.4169839Z           ]
2026-06-19T05:28:32.4169943Z         },
2026-06-19T05:28:32.4170043Z         "impl": {
2026-06-19T05:28:32.4170168Z           "complete": true,
2026-06-19T05:28:32.4170281Z           "evidence": [
2026-06-19T05:28:32.4170381Z             {
2026-06-19T05:28:32.4170530Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.4170638Z               "line": 65
2026-06-19T05:28:32.4170742Z             },
2026-06-19T05:28:32.4170848Z             {
2026-06-19T05:28:32.4170993Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:28:32.4171089Z               "line": 17
2026-06-19T05:28:32.4171194Z             },
2026-06-19T05:28:32.4171293Z             {
2026-06-19T05:28:32.4171557Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.4171660Z               "line": 146
2026-06-19T05:28:32.4171752Z             },
2026-06-19T05:28:32.4171861Z             {
2026-06-19T05:28:32.4172004Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.4172115Z               "line": 286
2026-06-19T05:28:32.4172333Z             },
2026-06-19T05:28:32.4172430Z             {
2026-06-19T05:28:32.4172567Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.4172677Z               "line": 417
2026-06-19T05:28:32.4172782Z             },
2026-06-19T05:28:32.4172882Z             {
2026-06-19T05:28:32.4173012Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.4173125Z               "line": 32
2026-06-19T05:28:32.4173220Z             },
2026-06-19T05:28:32.4173327Z             {
2026-06-19T05:28:32.4173459Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4173577Z               "line": 1269
2026-06-19T05:28:32.4173682Z             },
2026-06-19T05:28:32.4173783Z             {
2026-06-19T05:28:32.4173915Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4174035Z               "line": 6018
2026-06-19T05:28:32.4174163Z             },
2026-06-19T05:28:32.4174258Z             {
2026-06-19T05:28:32.4174392Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4174506Z               "line": 6300
2026-06-19T05:28:32.4174602Z             }
2026-06-19T05:28:32.4174721Z           ]
2026-06-19T05:28:32.4174849Z         },
2026-06-19T05:28:32.4175003Z         "int": {
2026-06-19T05:28:32.4175126Z           "complete": false,
2026-06-19T05:28:32.4175232Z           "evidence": []
2026-06-19T05:28:32.4175337Z         },
2026-06-19T05:28:32.4175446Z         "unit": {
2026-06-19T05:28:32.4175561Z           "complete": true,
2026-06-19T05:28:32.4175666Z           "evidence": [
2026-06-19T05:28:32.4175769Z             {
2026-06-19T05:28:32.4175912Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:28:32.4176044Z               "line": 94
2026-06-19T05:28:32.4176157Z             },
2026-06-19T05:28:32.4176273Z             {
2026-06-19T05:28:32.4176425Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:28:32.4176544Z               "line": 111
2026-06-19T05:28:32.4176669Z             },
2026-06-19T05:28:32.4176773Z             {
2026-06-19T05:28:32.4176907Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:28:32.4177030Z               "line": 124
2026-06-19T05:28:32.4177135Z             },
2026-06-19T05:28:32.4177245Z             {
2026-06-19T05:28:32.4177383Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:28:32.4177479Z               "line": 134
2026-06-19T05:28:32.4177584Z             },
2026-06-19T05:28:32.4177688Z             {
2026-06-19T05:28:32.4177823Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:28:32.4177931Z               "line": 144
2026-06-19T05:28:32.4178036Z             },
2026-06-19T05:28:32.4178147Z             {
2026-06-19T05:28:32.4178284Z               "path": "crates/spt-proto/src/id.rs",
2026-06-19T05:28:32.4178394Z               "line": 156
2026-06-19T05:28:32.4178500Z             },
2026-06-19T05:28:32.4182117Z             {
2026-06-19T05:28:32.4182331Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.4182460Z               "line": 746
2026-06-19T05:28:32.4182579Z             },
2026-06-19T05:28:32.4182689Z             {
2026-06-19T05:28:32.4182855Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.4182980Z               "line": 309
2026-06-19T05:28:32.4183089Z             }
2026-06-19T05:28:32.4183194Z           ]
2026-06-19T05:28:32.4183290Z         }
2026-06-19T05:28:32.4183394Z       }
2026-06-19T05:28:32.4183494Z     },
2026-06-19T05:28:32.4183595Z     {
2026-06-19T05:28:32.4183737Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-19T05:28:32.4183896Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-19T05:28:32.4184165Z       "requiredStages": [
2026-06-19T05:28:32.4184276Z         "impl",
2026-06-19T05:28:32.4184385Z         "unit"
2026-06-19T05:28:32.4184480Z       ],
2026-06-19T05:28:32.4184591Z       "stages": {
2026-06-19T05:28:32.4184700Z         "doc": {
2026-06-19T05:28:32.4184828Z           "complete": false,
2026-06-19T05:28:32.4184943Z           "evidence": []
2026-06-19T05:28:32.4185148Z         },
2026-06-19T05:28:32.4185253Z         "impl": {
2026-06-19T05:28:32.4185372Z           "complete": true,
2026-06-19T05:28:32.4185487Z           "evidence": [
2026-06-19T05:28:32.4185596Z             {
2026-06-19T05:28:32.4185748Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.4185874Z               "line": 128
2026-06-19T05:28:32.4185977Z             }
2026-06-19T05:28:32.4186083Z           ]
2026-06-19T05:28:32.4186189Z         },
2026-06-19T05:28:32.4186306Z         "int": {
2026-06-19T05:28:32.4186429Z           "complete": false,
2026-06-19T05:28:32.4186553Z           "evidence": []
2026-06-19T05:28:32.4186661Z         },
2026-06-19T05:28:32.4186761Z         "unit": {
2026-06-19T05:28:32.4186876Z           "complete": true,
2026-06-19T05:28:32.4186989Z           "evidence": [
2026-06-19T05:28:32.4187099Z             {
2026-06-19T05:28:32.4187248Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.4187370Z               "line": 205
2026-06-19T05:28:32.4187486Z             }
2026-06-19T05:28:32.4187590Z           ]
2026-06-19T05:28:32.4187695Z         }
2026-06-19T05:28:32.4187796Z       }
2026-06-19T05:28:32.4187896Z     },
2026-06-19T05:28:32.4188005Z     {
2026-06-19T05:28:32.4188148Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-19T05:28:32.4188334Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-19T05:28:32.4188445Z       "requiredStages": [
2026-06-19T05:28:32.4188558Z         "impl",
2026-06-19T05:28:32.4188664Z         "unit"
2026-06-19T05:28:32.4188788Z       ],
2026-06-19T05:28:32.4188902Z       "stages": {
2026-06-19T05:28:32.4189084Z         "doc": {
2026-06-19T05:28:32.4189201Z           "complete": false,
2026-06-19T05:28:32.4189316Z           "evidence": []
2026-06-19T05:28:32.4189429Z         },
2026-06-19T05:28:32.4189528Z         "impl": {
2026-06-19T05:28:32.4189638Z           "complete": true,
2026-06-19T05:28:32.4189753Z           "evidence": [
2026-06-19T05:28:32.4189843Z             {
2026-06-19T05:28:32.4189991Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4190096Z               "line": 342
2026-06-19T05:28:32.4190205Z             },
2026-06-19T05:28:32.4190311Z             {
2026-06-19T05:28:32.4190463Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4190587Z               "line": 353
2026-06-19T05:28:32.4190692Z             },
2026-06-19T05:28:32.4190801Z             {
2026-06-19T05:28:32.4190940Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4191058Z               "line": 371
2026-06-19T05:28:32.4191159Z             }
2026-06-19T05:28:32.4191265Z           ]
2026-06-19T05:28:32.4191373Z         },
2026-06-19T05:28:32.4191478Z         "int": {
2026-06-19T05:28:32.4191608Z           "complete": false,
2026-06-19T05:28:32.4191773Z           "evidence": []
2026-06-19T05:28:32.4191877Z         },
2026-06-19T05:28:32.4191987Z         "unit": {
2026-06-19T05:28:32.4192099Z           "complete": true,
2026-06-19T05:28:32.4192219Z           "evidence": [
2026-06-19T05:28:32.4192324Z             {
2026-06-19T05:28:32.4192475Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4192582Z               "line": 395
2026-06-19T05:28:32.4192687Z             },
2026-06-19T05:28:32.4192790Z             {
2026-06-19T05:28:32.4192929Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4193048Z               "line": 416
2026-06-19T05:28:32.4193153Z             },
2026-06-19T05:28:32.4193263Z             {
2026-06-19T05:28:32.4193401Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4193621Z               "line": 785
2026-06-19T05:28:32.4193730Z             },
2026-06-19T05:28:32.4193836Z             {
2026-06-19T05:28:32.4193982Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4194093Z               "line": 796
2026-06-19T05:28:32.4194203Z             },
2026-06-19T05:28:32.4194311Z             {
2026-06-19T05:28:32.4194560Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4194668Z               "line": 809
2026-06-19T05:28:32.4194773Z             }
2026-06-19T05:28:32.4194874Z           ]
2026-06-19T05:28:32.4194973Z         }
2026-06-19T05:28:32.4195078Z       }
2026-06-19T05:28:32.4195179Z     },
2026-06-19T05:28:32.4195274Z     {
2026-06-19T05:28:32.4195403Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-19T05:28:32.4196037Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-19T05:28:32.4196171Z       "requiredStages": [
2026-06-19T05:28:32.4196280Z         "impl",
2026-06-19T05:28:32.4196391Z         "unit"
2026-06-19T05:28:32.4196495Z       ],
2026-06-19T05:28:32.4196599Z       "stages": {
2026-06-19T05:28:32.4196710Z         "doc": {
2026-06-19T05:28:32.4196828Z           "complete": false,
2026-06-19T05:28:32.4196956Z           "evidence": []
2026-06-19T05:28:32.4197056Z         },
2026-06-19T05:28:32.4197169Z         "impl": {
2026-06-19T05:28:32.4197292Z           "complete": true,
2026-06-19T05:28:32.4197407Z           "evidence": [
2026-06-19T05:28:32.4197512Z             {
2026-06-19T05:28:32.4197669Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.4197789Z               "line": 759
2026-06-19T05:28:32.4197893Z             }
2026-06-19T05:28:32.4197999Z           ]
2026-06-19T05:28:32.4198108Z         },
2026-06-19T05:28:32.4198212Z         "int": {
2026-06-19T05:28:32.4198338Z           "complete": false,
2026-06-19T05:28:32.4198452Z           "evidence": []
2026-06-19T05:28:32.4198556Z         },
2026-06-19T05:28:32.4198671Z         "unit": {
2026-06-19T05:28:32.4198790Z           "complete": true,
2026-06-19T05:28:32.4198904Z           "evidence": [
2026-06-19T05:28:32.4199075Z             {
2026-06-19T05:28:32.4199239Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.4199357Z               "line": 873
2026-06-19T05:28:32.4199467Z             }
2026-06-19T05:28:32.4199573Z           ]
2026-06-19T05:28:32.4199677Z         }
2026-06-19T05:28:32.4199785Z       }
2026-06-19T05:28:32.4199885Z     },
2026-06-19T05:28:32.4199994Z     {
2026-06-19T05:28:32.4200149Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-LIVENESS-GATE",
2026-06-19T05:28:32.4202561Z       "title": "B5: `spt daemon start` does NOT revive phantom Psyches for dead-but-online-latched perches. Today reconcile_once (livehost.rs:285) spawns a Psyche per status=online live_agent perch at boot WITHOUT verifying the harness child / {id}-psyche is actually alive — so a Cold start after an unclean stop revives N psyches for N dead-but-latched perches (3 psyches for 3 dead perches). FIX: gate the boot psyche-spawn on real child-liveness — a perch with NO live broker session (the B2 reconcile signal) is marked OFFLINE at boot instead of hosted, so a dead-harness perch is never revived. Shares the B2 reconcile loop (this is its boot-gate arm); composes with B2's honest latch. Also closes wall-a's psyche_host_error gap (residency-confirm does not run at boot tick-1, livehost.rs:395-441 / 257-263). (v0.12.0)",
2026-06-19T05:28:32.4202711Z       "requiredStages": [
2026-06-19T05:28:32.4202808Z         "impl",
2026-06-19T05:28:32.4202913Z         "unit",
2026-06-19T05:28:32.4203016Z         "int"
2026-06-19T05:28:32.4203123Z       ],
2026-06-19T05:28:32.4203232Z       "stages": {
2026-06-19T05:28:32.4203341Z         "doc": {
2026-06-19T05:28:32.4203452Z           "complete": false,
2026-06-19T05:28:32.4203556Z           "evidence": []
2026-06-19T05:28:32.4203800Z         },
2026-06-19T05:28:32.4203909Z         "impl": {
2026-06-19T05:28:32.4204028Z           "complete": true,
2026-06-19T05:28:32.4204143Z           "evidence": [
2026-06-19T05:28:32.4204248Z             {
2026-06-19T05:28:32.4204411Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4204519Z               "line": 693
2026-06-19T05:28:32.4204726Z             }
2026-06-19T05:28:32.4204829Z           ]
2026-06-19T05:28:32.4204934Z         },
2026-06-19T05:28:32.4205041Z         "int": {
2026-06-19T05:28:32.4205148Z           "complete": true,
2026-06-19T05:28:32.4205261Z           "evidence": [
2026-06-19T05:28:32.4205362Z             {
2026-06-19T05:28:32.4205543Z               "path": "crates/spt/tests/livehost_bootgate_e2e.rs",
2026-06-19T05:28:32.4205643Z               "line": 24
2026-06-19T05:28:32.4205754Z             }
2026-06-19T05:28:32.4205858Z           ]
2026-06-19T05:28:32.4205958Z         },
2026-06-19T05:28:32.4206068Z         "unit": {
2026-06-19T05:28:32.4206187Z           "complete": true,
2026-06-19T05:28:32.4206307Z           "evidence": [
2026-06-19T05:28:32.4206412Z             {
2026-06-19T05:28:32.4206568Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4206688Z               "line": 859
2026-06-19T05:28:32.4206793Z             }
2026-06-19T05:28:32.4206907Z           ]
2026-06-19T05:28:32.4207003Z         }
2026-06-19T05:28:32.4207106Z       }
2026-06-19T05:28:32.4207208Z     },
2026-06-19T05:28:32.4207309Z     {
2026-06-19T05:28:32.4207445Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-RACE",
2026-06-19T05:28:32.4211101Z       "title": "The brain's daemon-hosted Psyche lifecycle surfaces a host-FAILURE on the live perch (harness-diagnosable) and runs net-INDEPENDENTLY. When reconcile_once→host_one→spawn_psyche fails for a state=live_agent+status=online endpoint (e.g. the adapter's psyche binary absent from its install dir, REQ-INSTALL-11), the failure MUST be written to the perch info.json as a CURRENT-STATE field (reason + ts + attempt count; overwritten each 5s retry, CLEARED on successful host) and surfaced by `spt endpoint list`/status — never left as an eprintln on the brain's invisible stderr where a harness reading only perch state is blind. status=online stays authoritative (agent reachable; only the Psyche is missing — brain-restart rehydrate legitimately has online-without-Psyche windows), so this is a SEPARATE psyche-host-health field, never a status de-stamp. Net-independence is a locked-in invariant: spawn_live_host (brainproc.rs:230) reaches the reconcile and hosts the Psyche on a net-less/unpaired/peer-pump-STALLED node, proven by a REAL detached-daemon E2E (real broker→brain-child, real api seed+listen, real install-dir psyche binary). spt-core SURFACES the failure; the adapter owns fixing its packaging.",
2026-06-19T05:28:32.4211273Z       "requiredStages": [
2026-06-19T05:28:32.4211392Z         "impl",
2026-06-19T05:28:32.4211497Z         "unit",
2026-06-19T05:28:32.4211620Z         "int"
2026-06-19T05:28:32.4211721Z       ],
2026-06-19T05:28:32.4211821Z       "stages": {
2026-06-19T05:28:32.4211935Z         "doc": {
2026-06-19T05:28:32.4212051Z           "complete": false,
2026-06-19T05:28:32.4212164Z           "evidence": []
2026-06-19T05:28:32.4212269Z         },
2026-06-19T05:28:32.4212375Z         "impl": {
2026-06-19T05:28:32.4212493Z           "complete": true,
2026-06-19T05:28:32.4212603Z           "evidence": [
2026-06-19T05:28:32.4212709Z             {
2026-06-19T05:28:32.4212860Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4212969Z               "line": 391
2026-06-19T05:28:32.4213065Z             },
2026-06-19T05:28:32.4213167Z             {
2026-06-19T05:28:32.4213315Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4213425Z               "line": 318
2026-06-19T05:28:32.4213534Z             },
2026-06-19T05:28:32.4213630Z             {
2026-06-19T05:28:32.4213764Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4214003Z               "line": 1643
2026-06-19T05:28:32.4214112Z             },
2026-06-19T05:28:32.4214216Z             {
2026-06-19T05:28:32.4214341Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4214459Z               "line": 3067
2026-06-19T05:28:32.4214554Z             }
2026-06-19T05:28:32.4214661Z           ]
2026-06-19T05:28:32.4214860Z         },
2026-06-19T05:28:32.4214961Z         "int": {
2026-06-19T05:28:32.4215084Z           "complete": true,
2026-06-19T05:28:32.4215193Z           "evidence": [
2026-06-19T05:28:32.4215305Z             {
2026-06-19T05:28:32.4215470Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-19T05:28:32.4215581Z               "line": 353
2026-06-19T05:28:32.4215685Z             },
2026-06-19T05:28:32.4215789Z             {
2026-06-19T05:28:32.4215966Z               "path": "crates/spt/tests/livehost_psyche_fail_e2e.rs",
2026-06-19T05:28:32.4216075Z               "line": 23
2026-06-19T05:28:32.4216189Z             }
2026-06-19T05:28:32.4216285Z           ]
2026-06-19T05:28:32.4216385Z         },
2026-06-19T05:28:32.4216484Z         "unit": {
2026-06-19T05:28:32.4216605Z           "complete": true,
2026-06-19T05:28:32.4216719Z           "evidence": [
2026-06-19T05:28:32.4216824Z             {
2026-06-19T05:28:32.4216967Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4217081Z               "line": 717
2026-06-19T05:28:32.4217187Z             },
2026-06-19T05:28:32.4217291Z             {
2026-06-19T05:28:32.4217424Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4217544Z               "line": 7720
2026-06-19T05:28:32.4217653Z             }
2026-06-19T05:28:32.4217753Z           ]
2026-06-19T05:28:32.4217859Z         }
2026-06-19T05:28:32.4217958Z       }
2026-06-19T05:28:32.4218062Z     },
2026-06-19T05:28:32.4218162Z     {
2026-06-19T05:28:32.4218308Z       "id": "REQ-HAZARD-LIVEHOST-NONRESIDENT",
2026-06-19T05:28:32.4221662Z       "title": "A daemon-hosted Psyche that spawns then EXITS IMMEDIATELY is a host failure, surfaced like a spawn failure (closes the v0.8.1 residual masking): the REQ-HAZARD-LIVEHOST-BOOT-RACE signal stamps `psyche_host_error` only when `spawn_psyche` returns Err, NOT when the detached spawn() returns Ok but the child dies within moments (e.g. a bad-argv child exiting 2 — the F-009 case). That leaves the residual 'online + no Psyche + no cause' gap: the nested `{id}-psyche` info.json is written status=online with a real-but-DEAD pid and the PARENT perch carries NO psyche_host_error (perri's F-010: tasklist showed 0 host procs across the window while info.json read online). The host MUST confirm RESIDENCY — a hosted child not alive (or whose `{id}-psyche` perch never re-registers / has a dead pid) within N seconds of spawn is treated as a host failure: stamp the parent perch `psyche_host_error{reason:\"host not resident within <n>s (psyche perch missing/dead pid)\"}` (and do not leave a phantom online nested perch). Closes the last masking gap the v0.8.1 fix left open. perri's F-010 (v0.8.1 dogfood). Sibling of REQ-HAZARD-LIVEHOST-BOOT-RACE.",
2026-06-19T05:28:32.4221828Z       "requiredStages": [
2026-06-19T05:28:32.4221942Z         "impl",
2026-06-19T05:28:32.4222048Z         "unit",
2026-06-19T05:28:32.4222157Z         "int"
2026-06-19T05:28:32.4222257Z       ],
2026-06-19T05:28:32.4222368Z       "stages": {
2026-06-19T05:28:32.4222477Z         "doc": {
2026-06-19T05:28:32.4222596Z           "complete": false,
2026-06-19T05:28:32.4222711Z           "evidence": []
2026-06-19T05:28:32.4222810Z         },
2026-06-19T05:28:32.4222916Z         "impl": {
2026-06-19T05:28:32.4223030Z           "complete": true,
2026-06-19T05:28:32.4223139Z           "evidence": [
2026-06-19T05:28:32.4223246Z             {
2026-06-19T05:28:32.4223401Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4223514Z               "line": 64
2026-06-19T05:28:32.4223610Z             },
2026-06-19T05:28:32.4223709Z             {
2026-06-19T05:28:32.4223976Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4224090Z               "line": 78
2026-06-19T05:28:32.4224190Z             },
2026-06-19T05:28:32.4224295Z             {
2026-06-19T05:28:32.4224447Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4224558Z               "line": 170
2026-06-19T05:28:32.4224667Z             },
2026-06-19T05:28:32.4224877Z             {
2026-06-19T05:28:32.4225015Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4225129Z               "line": 185
2026-06-19T05:28:32.4225235Z             },
2026-06-19T05:28:32.4225335Z             {
2026-06-19T05:28:32.4225483Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4225606Z               "line": 195
2026-06-19T05:28:32.4225715Z             },
2026-06-19T05:28:32.4225817Z             {
2026-06-19T05:28:32.4225963Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4226069Z               "line": 205
2026-06-19T05:28:32.4226175Z             },
2026-06-19T05:28:32.4226282Z             {
2026-06-19T05:28:32.4226430Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4226545Z               "line": 294
2026-06-19T05:28:32.4226649Z             },
2026-06-19T05:28:32.4226759Z             {
2026-06-19T05:28:32.4226903Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4227025Z               "line": 308
2026-06-19T05:28:32.4227132Z             },
2026-06-19T05:28:32.4227231Z             {
2026-06-19T05:28:32.4227379Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4227484Z               "line": 377
2026-06-19T05:28:32.4227589Z             },
2026-06-19T05:28:32.4227688Z             {
2026-06-19T05:28:32.4227837Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4227946Z               "line": 437
2026-06-19T05:28:32.4228052Z             },
2026-06-19T05:28:32.4228152Z             {
2026-06-19T05:28:32.4228304Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4228415Z               "line": 455
2026-06-19T05:28:32.4228518Z             }
2026-06-19T05:28:32.4228622Z           ]
2026-06-19T05:28:32.4228718Z         },
2026-06-19T05:28:32.4228826Z         "int": {
2026-06-19T05:28:32.4229049Z           "complete": true,
2026-06-19T05:28:32.4229183Z           "evidence": [
2026-06-19T05:28:32.4229282Z             {
2026-06-19T05:28:32.4229455Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-19T05:28:32.4229559Z               "line": 45
2026-06-19T05:28:32.4229670Z             },
2026-06-19T05:28:32.4229765Z             {
2026-06-19T05:28:32.4229931Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-19T05:28:32.4230037Z               "line": 354
2026-06-19T05:28:32.4230141Z             },
2026-06-19T05:28:32.4230246Z             {
2026-06-19T05:28:32.4230423Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-19T05:28:32.4230541Z               "line": 31
2026-06-19T05:28:32.4230638Z             }
2026-06-19T05:28:32.4230747Z           ]
2026-06-19T05:28:32.4230846Z         },
2026-06-19T05:28:32.4230962Z         "unit": {
2026-06-19T05:28:32.4231075Z           "complete": true,
2026-06-19T05:28:32.4231185Z           "evidence": [
2026-06-19T05:28:32.4231291Z             {
2026-06-19T05:28:32.4231442Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4231551Z               "line": 715
2026-06-19T05:28:32.4231651Z             }
2026-06-19T05:28:32.4231754Z           ]
2026-06-19T05:28:32.4231863Z         }
2026-06-19T05:28:32.4231960Z       }
2026-06-19T05:28:32.4232060Z     },
2026-06-19T05:28:32.4232164Z     {
2026-06-19T05:28:32.4232289Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-19T05:28:32.4232532Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-19T05:28:32.4232646Z       "requiredStages": [
2026-06-19T05:28:32.4232871Z         "impl",
2026-06-19T05:28:32.4232979Z         "unit"
2026-06-19T05:28:32.4233079Z       ],
2026-06-19T05:28:32.4233186Z       "stages": {
2026-06-19T05:28:32.4233290Z         "doc": {
2026-06-19T05:28:32.4233408Z           "complete": false,
2026-06-19T05:28:32.4233524Z           "evidence": []
2026-06-19T05:28:32.4233623Z         },
2026-06-19T05:28:32.4233839Z         "impl": {
2026-06-19T05:28:32.4233961Z           "complete": true,
2026-06-19T05:28:32.4234070Z           "evidence": [
2026-06-19T05:28:32.4234170Z             {
2026-06-19T05:28:32.4234311Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:28:32.4234430Z               "line": 14
2026-06-19T05:28:32.4234526Z             },
2026-06-19T05:28:32.4234631Z             {
2026-06-19T05:28:32.4234769Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.4234879Z               "line": 566
2026-06-19T05:28:32.4234988Z             }
2026-06-19T05:28:32.4235089Z           ]
2026-06-19T05:28:32.4235208Z         },
2026-06-19T05:28:32.4235312Z         "int": {
2026-06-19T05:28:32.4235433Z           "complete": false,
2026-06-19T05:28:32.4235546Z           "evidence": []
2026-06-19T05:28:32.4235651Z         },
2026-06-19T05:28:32.4235762Z         "unit": {
2026-06-19T05:28:32.4235875Z           "complete": true,
2026-06-19T05:28:32.4235990Z           "evidence": [
2026-06-19T05:28:32.4236105Z             {
2026-06-19T05:28:32.4236233Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:28:32.4236348Z               "line": 130
2026-06-19T05:28:32.4236458Z             },
2026-06-19T05:28:32.4236557Z             {
2026-06-19T05:28:32.4236692Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:28:32.4236801Z               "line": 138
2026-06-19T05:28:32.4236909Z             },
2026-06-19T05:28:32.4237004Z             {
2026-06-19T05:28:32.4237134Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:28:32.4237247Z               "line": 146
2026-06-19T05:28:32.4237367Z             },
2026-06-19T05:28:32.4237458Z             {
2026-06-19T05:28:32.4237586Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:28:32.4237701Z               "line": 154
2026-06-19T05:28:32.4237806Z             },
2026-06-19T05:28:32.4237910Z             {
2026-06-19T05:28:32.4238040Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:28:32.4238158Z               "line": 162
2026-06-19T05:28:32.4238258Z             },
2026-06-19T05:28:32.4238368Z             {
2026-06-19T05:28:32.4238497Z               "path": "crates/spt/src/api/auth.rs",
2026-06-19T05:28:32.4238598Z               "line": 170
2026-06-19T05:28:32.4238702Z             }
2026-06-19T05:28:32.4238806Z           ]
2026-06-19T05:28:32.4238912Z         }
2026-06-19T05:28:32.4239092Z       }
2026-06-19T05:28:32.4239197Z     },
2026-06-19T05:28:32.4239297Z     {
2026-06-19T05:28:32.4239433Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-19T05:28:32.4240349Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-19T05:28:32.4240476Z       "requiredStages": [
2026-06-19T05:28:32.4240578Z         "impl",
2026-06-19T05:28:32.4240687Z         "unit"
2026-06-19T05:28:32.4240801Z       ],
2026-06-19T05:28:32.4240902Z       "stages": {
2026-06-19T05:28:32.4240997Z         "doc": {
2026-06-19T05:28:32.4241125Z           "complete": false,
2026-06-19T05:28:32.4241236Z           "evidence": []
2026-06-19T05:28:32.4241340Z         },
2026-06-19T05:28:32.4241440Z         "impl": {
2026-06-19T05:28:32.4241565Z           "complete": true,
2026-06-19T05:28:32.4241678Z           "evidence": [
2026-06-19T05:28:32.4241780Z             {
2026-06-19T05:28:32.4241960Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:28:32.4242068Z               "line": 34
2026-06-19T05:28:32.4242300Z             }
2026-06-19T05:28:32.4242409Z           ]
2026-06-19T05:28:32.4242515Z         },
2026-06-19T05:28:32.4242624Z         "int": {
2026-06-19T05:28:32.4242734Z           "complete": false,
2026-06-19T05:28:32.4242854Z           "evidence": []
2026-06-19T05:28:32.4242939Z         },
2026-06-19T05:28:32.4243048Z         "unit": {
2026-06-19T05:28:32.4243254Z           "complete": true,
2026-06-19T05:28:32.4243373Z           "evidence": [
2026-06-19T05:28:32.4243478Z             {
2026-06-19T05:28:32.4243649Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:28:32.4243755Z               "line": 188
2026-06-19T05:28:32.4243859Z             },
2026-06-19T05:28:32.4243964Z             {
2026-06-19T05:28:32.4244137Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:28:32.4244245Z               "line": 200
2026-06-19T05:28:32.4244346Z             },
2026-06-19T05:28:32.4244437Z             {
2026-06-19T05:28:32.4244612Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:28:32.4244721Z               "line": 211
2026-06-19T05:28:32.4244830Z             },
2026-06-19T05:28:32.4244933Z             {
2026-06-19T05:28:32.4245087Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:28:32.4245196Z               "line": 253
2026-06-19T05:28:32.4245310Z             },
2026-06-19T05:28:32.4245416Z             {
2026-06-19T05:28:32.4245567Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:28:32.4245688Z               "line": 277
2026-06-19T05:28:32.4245797Z             },
2026-06-19T05:28:32.4245901Z             {
2026-06-19T05:28:32.4246064Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:28:32.4246168Z               "line": 300
2026-06-19T05:28:32.4246278Z             },
2026-06-19T05:28:32.4246374Z             {
2026-06-19T05:28:32.4246535Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-19T05:28:32.4246656Z               "line": 316
2026-06-19T05:28:32.4246754Z             }
2026-06-19T05:28:32.4246855Z           ]
2026-06-19T05:28:32.4246961Z         }
2026-06-19T05:28:32.4247069Z       }
2026-06-19T05:28:32.4247170Z     },
2026-06-19T05:28:32.4247271Z     {
2026-06-19T05:28:32.4247407Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-19T05:28:32.4247975Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-19T05:28:32.4248098Z       "requiredStages": [
2026-06-19T05:28:32.4248199Z         "impl",
2026-06-19T05:28:32.4248304Z         "unit"
2026-06-19T05:28:32.4248403Z       ],
2026-06-19T05:28:32.4248509Z       "stages": {
2026-06-19T05:28:32.4248619Z         "doc": {
2026-06-19T05:28:32.4248732Z           "complete": false,
2026-06-19T05:28:32.4248852Z           "evidence": []
2026-06-19T05:28:32.4249024Z         },
2026-06-19T05:28:32.4249128Z         "impl": {
2026-06-19T05:28:32.4249239Z           "complete": true,
2026-06-19T05:28:32.4249343Z           "evidence": [
2026-06-19T05:28:32.4249453Z             {
2026-06-19T05:28:32.4249596Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4249714Z               "line": 29
2026-06-19T05:28:32.4249823Z             },
2026-06-19T05:28:32.4249937Z             {
2026-06-19T05:28:32.4250078Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4250184Z               "line": 174
2026-06-19T05:28:32.4250288Z             },
2026-06-19T05:28:32.4250393Z             {
2026-06-19T05:28:32.4250537Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4250637Z               "line": 194
2026-06-19T05:28:32.4250741Z             },
2026-06-19T05:28:32.4250847Z             {
2026-06-19T05:28:32.4250989Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4251228Z               "line": 222
2026-06-19T05:28:32.4251328Z             }
2026-06-19T05:28:32.4251434Z           ]
2026-06-19T05:28:32.4251533Z         },
2026-06-19T05:28:32.4251643Z         "int": {
2026-06-19T05:28:32.4251768Z           "complete": false,
2026-06-19T05:28:32.4251881Z           "evidence": []
2026-06-19T05:28:32.4251991Z         },
2026-06-19T05:28:32.4252092Z         "unit": {
2026-06-19T05:28:32.4252315Z           "complete": true,
2026-06-19T05:28:32.4252426Z           "evidence": [
2026-06-19T05:28:32.4252534Z             {
2026-06-19T05:28:32.4252681Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4252795Z               "line": 329
2026-06-19T05:28:32.4252898Z             },
2026-06-19T05:28:32.4253003Z             {
2026-06-19T05:28:32.4253147Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4253260Z               "line": 344
2026-06-19T05:28:32.4253357Z             },
2026-06-19T05:28:32.4253466Z             {
2026-06-19T05:28:32.4253613Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4253733Z               "line": 417
2026-06-19T05:28:32.4253838Z             },
2026-06-19T05:28:32.4253943Z             {
2026-06-19T05:28:32.4254090Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4254200Z               "line": 433
2026-06-19T05:28:32.4254311Z             },
2026-06-19T05:28:32.4254419Z             {
2026-06-19T05:28:32.4254567Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4254678Z               "line": 492
2026-06-19T05:28:32.4254781Z             },
2026-06-19T05:28:32.4254882Z             {
2026-06-19T05:28:32.4255026Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4255143Z               "line": 506
2026-06-19T05:28:32.4255248Z             },
2026-06-19T05:28:32.4255343Z             {
2026-06-19T05:28:32.4255479Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4255599Z               "line": 517
2026-06-19T05:28:32.4255700Z             },
2026-06-19T05:28:32.4255808Z             {
2026-06-19T05:28:32.4255952Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4256062Z               "line": 528
2026-06-19T05:28:32.4256166Z             }
2026-06-19T05:28:32.4256376Z           ]
2026-06-19T05:28:32.4256490Z         }
2026-06-19T05:28:32.4256591Z       }
2026-06-19T05:28:32.4256705Z     },
2026-06-19T05:28:32.4256810Z     {
2026-06-19T05:28:32.4256948Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-19T05:28:32.4257653Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-19T05:28:32.4257769Z       "requiredStages": [
2026-06-19T05:28:32.4257874Z         "impl",
2026-06-19T05:28:32.4257982Z         "unit"
2026-06-19T05:28:32.4258081Z       ],
2026-06-19T05:28:32.4258192Z       "stages": {
2026-06-19T05:28:32.4258301Z         "doc": {
2026-06-19T05:28:32.4258424Z           "complete": false,
2026-06-19T05:28:32.4258535Z           "evidence": []
2026-06-19T05:28:32.4258644Z         },
2026-06-19T05:28:32.4258749Z         "impl": {
2026-06-19T05:28:32.4258869Z           "complete": true,
2026-06-19T05:28:32.4259112Z           "evidence": [
2026-06-19T05:28:32.4259217Z             {
2026-06-19T05:28:32.4259393Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.4259503Z               "line": 27
2026-06-19T05:28:32.4259607Z             },
2026-06-19T05:28:32.4259713Z             {
2026-06-19T05:28:32.4259865Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.4259979Z               "line": 110
2026-06-19T05:28:32.4260081Z             },
2026-06-19T05:28:32.4260189Z             {
2026-06-19T05:28:32.4260331Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.4260450Z               "line": 153
2026-06-19T05:28:32.4260672Z             },
2026-06-19T05:28:32.4260763Z             {
2026-06-19T05:28:32.4260930Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.4261040Z               "line": 182
2026-06-19T05:28:32.4261135Z             },
2026-06-19T05:28:32.4261225Z             {
2026-06-19T05:28:32.4261393Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:28:32.4261601Z               "line": 31
2026-06-19T05:28:32.4261703Z             },
2026-06-19T05:28:32.4261808Z             {
2026-06-19T05:28:32.4261984Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:28:32.4262098Z               "line": 113
2026-06-19T05:28:32.4262203Z             },
2026-06-19T05:28:32.4262304Z             {
2026-06-19T05:28:32.4262470Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:28:32.4262575Z               "line": 138
2026-06-19T05:28:32.4262681Z             }
2026-06-19T05:28:32.4262779Z           ]
2026-06-19T05:28:32.4262895Z         },
2026-06-19T05:28:32.4263000Z         "int": {
2026-06-19T05:28:32.4263118Z           "complete": false,
2026-06-19T05:28:32.4263241Z           "evidence": []
2026-06-19T05:28:32.4263345Z         },
2026-06-19T05:28:32.4263449Z         "unit": {
2026-06-19T05:28:32.4263558Z           "complete": true,
2026-06-19T05:28:32.4263674Z           "evidence": [
2026-06-19T05:28:32.4263773Z             {
2026-06-19T05:28:32.4263922Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.4264036Z               "line": 261
2026-06-19T05:28:32.4264135Z             },
2026-06-19T05:28:32.4264237Z             {
2026-06-19T05:28:32.4264398Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.4264508Z               "line": 276
2026-06-19T05:28:32.4264608Z             },
2026-06-19T05:28:32.4264708Z             {
2026-06-19T05:28:32.4264866Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.4264984Z               "line": 293
2026-06-19T05:28:32.4265084Z             },
2026-06-19T05:28:32.4265186Z             {
2026-06-19T05:28:32.4265342Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.4265452Z               "line": 310
2026-06-19T05:28:32.4265557Z             },
2026-06-19T05:28:32.4265666Z             {
2026-06-19T05:28:32.4265817Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.4265931Z               "line": 327
2026-06-19T05:28:32.4266034Z             },
2026-06-19T05:28:32.4266144Z             {
2026-06-19T05:28:32.4266297Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.4266406Z               "line": 366
2026-06-19T05:28:32.4266517Z             },
2026-06-19T05:28:32.4266617Z             {
2026-06-19T05:28:32.4266789Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:28:32.4266898Z               "line": 179
2026-06-19T05:28:32.4267007Z             },
2026-06-19T05:28:32.4267109Z             {
2026-06-19T05:28:32.4267275Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:28:32.4267393Z               "line": 194
2026-06-19T05:28:32.4267494Z             },
2026-06-19T05:28:32.4267604Z             {
2026-06-19T05:28:32.4267771Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:28:32.4267889Z               "line": 204
2026-06-19T05:28:32.4267989Z             },
2026-06-19T05:28:32.4268096Z             {
2026-06-19T05:28:32.4268267Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:28:32.4268377Z               "line": 259
2026-06-19T05:28:32.4268477Z             },
2026-06-19T05:28:32.4268584Z             {
2026-06-19T05:28:32.4268737Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:28:32.4268857Z               "line": 269
2026-06-19T05:28:32.4269033Z             },
2026-06-19T05:28:32.4269143Z             {
2026-06-19T05:28:32.4269429Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:28:32.4269543Z               "line": 283
2026-06-19T05:28:32.4269653Z             }
2026-06-19T05:28:32.4269753Z           ]
2026-06-19T05:28:32.4269858Z         }
2026-06-19T05:28:32.4269958Z       }
2026-06-19T05:28:32.4270064Z     },
2026-06-19T05:28:32.4270163Z     {
2026-06-19T05:28:32.4270406Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-19T05:28:32.4270622Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-19T05:28:32.4270740Z       "requiredStages": [],
2026-06-19T05:28:32.4270853Z       "stages": {
2026-06-19T05:28:32.4270953Z         "doc": {
2026-06-19T05:28:32.4274014Z           "complete": false,
2026-06-19T05:28:32.4274152Z           "evidence": []
2026-06-19T05:28:32.4274262Z         },
2026-06-19T05:28:32.4274362Z         "impl": {
2026-06-19T05:28:32.4274482Z           "complete": false,
2026-06-19T05:28:32.4274601Z           "evidence": []
2026-06-19T05:28:32.4274723Z         },
2026-06-19T05:28:32.4274830Z         "int": {
2026-06-19T05:28:32.4274948Z           "complete": false,
2026-06-19T05:28:32.4275063Z           "evidence": []
2026-06-19T05:28:32.4275163Z         },
2026-06-19T05:28:32.4275273Z         "unit": {
2026-06-19T05:28:32.4275392Z           "complete": false,
2026-06-19T05:28:32.4275492Z           "evidence": []
2026-06-19T05:28:32.4275592Z         }
2026-06-19T05:28:32.4275687Z       }
2026-06-19T05:28:32.4275793Z     },
2026-06-19T05:28:32.4275887Z     {
2026-06-19T05:28:32.4276051Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-19T05:28:32.4276961Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-19T05:28:32.4277091Z       "requiredStages": [
2026-06-19T05:28:32.4277200Z         "impl",
2026-06-19T05:28:32.4277305Z         "unit"
2026-06-19T05:28:32.4277410Z       ],
2026-06-19T05:28:32.4277515Z       "stages": {
2026-06-19T05:28:32.4277615Z         "doc": {
2026-06-19T05:28:32.4277730Z           "complete": false,
2026-06-19T05:28:32.4277835Z           "evidence": []
2026-06-19T05:28:32.4277939Z         },
2026-06-19T05:28:32.4278040Z         "impl": {
2026-06-19T05:28:32.4278169Z           "complete": true,
2026-06-19T05:28:32.4278274Z           "evidence": [
2026-06-19T05:28:32.4278374Z             {
2026-06-19T05:28:32.4278540Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.4278642Z               "line": 26
2026-06-19T05:28:32.4278759Z             },
2026-06-19T05:28:32.4278859Z             {
2026-06-19T05:28:32.4279083Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.4279192Z               "line": 95
2026-06-19T05:28:32.4279293Z             },
2026-06-19T05:28:32.4279398Z             {
2026-06-19T05:28:32.4279545Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.4279670Z               "line": 166
2026-06-19T05:28:32.4279765Z             },
2026-06-19T05:28:32.4279855Z             {
2026-06-19T05:28:32.4280004Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:28:32.4280108Z               "line": 19
2026-06-19T05:28:32.4280213Z             },
2026-06-19T05:28:32.4280318Z             {
2026-06-19T05:28:32.4280465Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:28:32.4280581Z               "line": 50
2026-06-19T05:28:32.4280680Z             },
2026-06-19T05:28:32.4280785Z             {
2026-06-19T05:28:32.4280910Z               "path": "crates/spt-live/src/turn.rs",
2026-06-19T05:28:32.4281018Z               "line": 18
2026-06-19T05:28:32.4281119Z             },
2026-06-19T05:28:32.4281225Z             {
2026-06-19T05:28:32.4281361Z               "path": "crates/spt-live/src/turn.rs",
2026-06-19T05:28:32.4281470Z               "line": 71
2026-06-19T05:28:32.4281721Z             },
2026-06-19T05:28:32.4281826Z             {
2026-06-19T05:28:32.4281974Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.4282083Z               "line": 87
2026-06-19T05:28:32.4282189Z             }
2026-06-19T05:28:32.4282298Z           ]
2026-06-19T05:28:32.4282398Z         },
2026-06-19T05:28:32.4282504Z         "int": {
2026-06-19T05:28:32.4282790Z           "complete": false,
2026-06-19T05:28:32.4282899Z           "evidence": []
2026-06-19T05:28:32.4282998Z         },
2026-06-19T05:28:32.4283109Z         "unit": {
2026-06-19T05:28:32.4283232Z           "complete": true,
2026-06-19T05:28:32.4283342Z           "evidence": [
2026-06-19T05:28:32.4283443Z             {
2026-06-19T05:28:32.4283600Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.4283725Z               "line": 289
2026-06-19T05:28:32.4283829Z             },
2026-06-19T05:28:32.4283934Z             {
2026-06-19T05:28:32.4284092Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.4284209Z               "line": 314
2026-06-19T05:28:32.4284318Z             },
2026-06-19T05:28:32.4284419Z             {
2026-06-19T05:28:32.4284574Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.4284684Z               "line": 350
2026-06-19T05:28:32.4284794Z             },
2026-06-19T05:28:32.4284898Z             {
2026-06-19T05:28:32.4285047Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.4285166Z               "line": 418
2026-06-19T05:28:32.4285270Z             },
2026-06-19T05:28:32.4285376Z             {
2026-06-19T05:28:32.4285518Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.4285637Z               "line": 429
2026-06-19T05:28:32.4285742Z             },
2026-06-19T05:28:32.4285842Z             {
2026-06-19T05:28:32.4285991Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.4286104Z               "line": 460
2026-06-19T05:28:32.4286209Z             },
2026-06-19T05:28:32.4286320Z             {
2026-06-19T05:28:32.4286466Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.4286577Z               "line": 471
2026-06-19T05:28:32.4286683Z             },
2026-06-19T05:28:32.4286786Z             {
2026-06-19T05:28:32.4286933Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:28:32.4287046Z               "line": 77
2026-06-19T05:28:32.4287150Z             },
2026-06-19T05:28:32.4287245Z             {
2026-06-19T05:28:32.4287394Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:28:32.4287502Z               "line": 97
2026-06-19T05:28:32.4287614Z             },
2026-06-19T05:28:32.4287708Z             {
2026-06-19T05:28:32.4287851Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:28:32.4287966Z               "line": 112
2026-06-19T05:28:32.4288075Z             },
2026-06-19T05:28:32.4288180Z             {
2026-06-19T05:28:32.4288323Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:28:32.4288447Z               "line": 123
2026-06-19T05:28:32.4288543Z             },
2026-06-19T05:28:32.4288648Z             {
2026-06-19T05:28:32.4288790Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:28:32.4288897Z               "line": 130
2026-06-19T05:28:32.4289076Z             },
2026-06-19T05:28:32.4289183Z             {
2026-06-19T05:28:32.4289334Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-19T05:28:32.4289449Z               "line": 145
2026-06-19T05:28:32.4289550Z             },
2026-06-19T05:28:32.4289653Z             {
2026-06-19T05:28:32.4289786Z               "path": "crates/spt-live/src/turn.rs",
2026-06-19T05:28:32.4289897Z               "line": 115
2026-06-19T05:28:32.4290001Z             },
2026-06-19T05:28:32.4290105Z             {
2026-06-19T05:28:32.4290244Z               "path": "crates/spt-live/src/turn.rs",
2026-06-19T05:28:32.4290353Z               "line": 130
2026-06-19T05:28:32.4290459Z             },
2026-06-19T05:28:32.4290658Z             {
2026-06-19T05:28:32.4290812Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.4290916Z               "line": 428
2026-06-19T05:28:32.4291025Z             }
2026-06-19T05:28:32.4291117Z           ]
2026-06-19T05:28:32.4291217Z         }
2026-06-19T05:28:32.4291326Z       }
2026-06-19T05:28:32.4291428Z     },
2026-06-19T05:28:32.4291622Z     {
2026-06-19T05:28:32.4291761Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-19T05:28:32.4292629Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-19T05:28:32.4292754Z       "requiredStages": [
2026-06-19T05:28:32.4292858Z         "doc",
2026-06-19T05:28:32.4292972Z         "impl",
2026-06-19T05:28:32.4293074Z         "unit"
2026-06-19T05:28:32.4293178Z       ],
2026-06-19T05:28:32.4293301Z       "stages": {
2026-06-19T05:28:32.4293407Z         "doc": {
2026-06-19T05:28:32.4293521Z           "complete": true,
2026-06-19T05:28:32.4293626Z           "evidence": [
2026-06-19T05:28:32.4293722Z             {
2026-06-19T05:28:32.4293850Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4293965Z               "line": 374
2026-06-19T05:28:32.4294084Z             }
2026-06-19T05:28:32.4294188Z           ]
2026-06-19T05:28:32.4294295Z         },
2026-06-19T05:28:32.4294399Z         "impl": {
2026-06-19T05:28:32.4294517Z           "complete": true,
2026-06-19T05:28:32.4294624Z           "evidence": [
2026-06-19T05:28:32.4294728Z             {
2026-06-19T05:28:32.4294869Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.4294974Z               "line": 200
2026-06-19T05:28:32.4295087Z             },
2026-06-19T05:28:32.4295186Z             {
2026-06-19T05:28:32.4295330Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.4295434Z               "line": 304
2026-06-19T05:28:32.4295543Z             },
2026-06-19T05:28:32.4295645Z             {
2026-06-19T05:28:32.4295787Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.4295897Z               "line": 516
2026-06-19T05:28:32.4295997Z             },
2026-06-19T05:28:32.4296101Z             {
2026-06-19T05:28:32.4296236Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.4296350Z               "line": 531
2026-06-19T05:28:32.4296455Z             },
2026-06-19T05:28:32.4296561Z             {
2026-06-19T05:28:32.4296707Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.4296817Z               "line": 1158
2026-06-19T05:28:32.4296923Z             },
2026-06-19T05:28:32.4297022Z             {
2026-06-19T05:28:32.4297171Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.4297280Z               "line": 443
2026-06-19T05:28:32.4297389Z             },
2026-06-19T05:28:32.4297502Z             {
2026-06-19T05:28:32.4297644Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.4297757Z               "line": 590
2026-06-19T05:28:32.4297863Z             },
2026-06-19T05:28:32.4297968Z             {
2026-06-19T05:28:32.4298116Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.4298226Z               "line": 731
2026-06-19T05:28:32.4298334Z             }
2026-06-19T05:28:32.4298435Z           ]
2026-06-19T05:28:32.4298531Z         },
2026-06-19T05:28:32.4298631Z         "int": {
2026-06-19T05:28:32.4298755Z           "complete": false,
2026-06-19T05:28:32.4298864Z           "evidence": []
2026-06-19T05:28:32.4299040Z         },
2026-06-19T05:28:32.4299151Z         "unit": {
2026-06-19T05:28:32.4299255Z           "complete": true,
2026-06-19T05:28:32.4299364Z           "evidence": [
2026-06-19T05:28:32.4299466Z             {
2026-06-19T05:28:32.4299613Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.4299832Z               "line": 1155
2026-06-19T05:28:32.4299937Z             },
2026-06-19T05:28:32.4300038Z             {
2026-06-19T05:28:32.4300203Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-19T05:28:32.4300317Z               "line": 30
2026-06-19T05:28:32.4300418Z             }
2026-06-19T05:28:32.4300523Z           ]
2026-06-19T05:28:32.4300622Z         }
2026-06-19T05:28:32.4300814Z       }
2026-06-19T05:28:32.4300913Z     },
2026-06-19T05:28:32.4301009Z     {
2026-06-19T05:28:32.4301152Z       "id": "REQ-HAZARD-RC-ATTACH-FAILFAST",
2026-06-19T05:28:32.4304491Z       "title": "B1: `spt rc <id>` to a DEAD or non-streaming session fails fast with a clear message, never an INFINITE blank screen. Today rc.rs run_attach (209-231) + pump spawns PUMP_IPC_READER and blocks: the poll times out each slice but the stream never produces output, so the operator sees a permanent blank (operator: fresh wall-f attached, closed tab, then `spt rc wall-f` HUNG — the broker still resolved a session for it). FIX: (a) once B2 lands, gate attach on is_online/status — an offline endpoint yields a clean 'endpoint offline, start it' not an attach; (b) fail-fast — if the attach-open ack / first output does not arrive within a bound, surface a clear message, never an infinite blank; (c) the broker EOFs the attach stream when the session's child is dead, so rc's existing PumpEnd::BrokerGone graceful path (REQ-HAZARD-RC-EOF) catches it. PIN the exact sub-mechanism with a repro test FIRST (dead-session-lingers-in-broker vs reaped-but-rc-waits vs alive-resting-no-wake — the wall-f Windows tab-close: child alive-silent vs dead-not-reaped). (v0.12.0)",
2026-06-19T05:28:32.4304649Z       "requiredStages": [
2026-06-19T05:28:32.4304749Z         "impl",
2026-06-19T05:28:32.4304860Z         "unit",
2026-06-19T05:28:32.4304954Z         "int"
2026-06-19T05:28:32.4305059Z       ],
2026-06-19T05:28:32.4305169Z       "stages": {
2026-06-19T05:28:32.4305274Z         "doc": {
2026-06-19T05:28:32.4305401Z           "complete": false,
2026-06-19T05:28:32.4305534Z           "evidence": []
2026-06-19T05:28:32.4305642Z         },
2026-06-19T05:28:32.4305741Z         "impl": {
2026-06-19T05:28:32.4305866Z           "complete": true,
2026-06-19T05:28:32.4305976Z           "evidence": [
2026-06-19T05:28:32.4306080Z             {
2026-06-19T05:28:32.4306215Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.4306337Z               "line": 198
2026-06-19T05:28:32.4306443Z             },
2026-06-19T05:28:32.4306544Z             {
2026-06-19T05:28:32.4306671Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.4306777Z               "line": 362
2026-06-19T05:28:32.4306877Z             }
2026-06-19T05:28:32.4306981Z           ]
2026-06-19T05:28:32.4307082Z         },
2026-06-19T05:28:32.4307187Z         "int": {
2026-06-19T05:28:32.4307296Z           "complete": true,
2026-06-19T05:28:32.4307412Z           "evidence": [
2026-06-19T05:28:32.4307512Z             {
2026-06-19T05:28:32.4307668Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:28:32.4307789Z               "line": 400
2026-06-19T05:28:32.4307891Z             }
2026-06-19T05:28:32.4307996Z           ]
2026-06-19T05:28:32.4308091Z         },
2026-06-19T05:28:32.4308190Z         "unit": {
2026-06-19T05:28:32.4308304Z           "complete": true,
2026-06-19T05:28:32.4308414Z           "evidence": [
2026-06-19T05:28:32.4308524Z             {
2026-06-19T05:28:32.4308651Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.4308753Z               "line": 538
2026-06-19T05:28:32.4308857Z             },
2026-06-19T05:28:32.4309082Z             {
2026-06-19T05:28:32.4309209Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.4309320Z               "line": 557
2026-06-19T05:28:32.4309453Z             }
2026-06-19T05:28:32.4309572Z           ]
2026-06-19T05:28:32.4309673Z         }
2026-06-19T05:28:32.4309777Z       }
2026-06-19T05:28:32.4309882Z     },
2026-06-19T05:28:32.4309978Z     {
2026-06-19T05:28:32.4310206Z       "id": "REQ-HAZARD-RC-EOF",
2026-06-19T05:28:32.4314063Z       "title": "A severed broker stream during a live rc session surfaces GRACEFULLY, never as a raw io error that crashes the PTY. The rc read-loop (rc.rs:352-362) continues only on WouldBlock/TimedOut; ANY other read_event_until error — including UnexpectedEof 'failed to fill whole buffer' — returns Err → RC_FAIL → the PTY 'crashes' from the user's view. Confirmed trigger: a deliberate `spt daemon stop` (broker bounce) severs an active rc (perri stopped the daemon to release owlery watch handles). Same severed-broker-stream EOF class as the v0.9.1 seed fix (seed_fail_message) and the listener-death case — spt-core must classify a broker-gone EOF and (a) surface a CLEAR actionable message ('daemon stopped/restarted — re-run / reconnect'), never the raw buffer error, and ideally (b) AUTO-REATTACH to the same session on the fresh broker (the broker is the daemon-lifetime anchor; it returns on the next `spt api` call). FOLD two side-observations: (1) `spt daemon stop` SILENTLY drops active rc/live sessions — warn ('N active session(s) will drop') or graceful-detach on stop; (2) the daemon holds owlery WATCH HANDLES on perch dirs so a torn-down perch dir stays 'Device busy' until a full daemon stop releases them (perri's rt-* cleanup) — a torn-down perch's handle should release without a daemon stop. doyle Finding C, root-caused. (post-v0.10.0)",
2026-06-19T05:28:32.4314336Z       "requiredStages": [
2026-06-19T05:28:32.4314441Z         "impl",
2026-06-19T05:28:32.4314556Z         "unit"
2026-06-19T05:28:32.4314660Z       ],
2026-06-19T05:28:32.4314760Z       "stages": {
2026-06-19T05:28:32.4314861Z         "doc": {
2026-06-19T05:28:32.4314970Z           "complete": false,
2026-06-19T05:28:32.4315075Z           "evidence": []
2026-06-19T05:28:32.4315171Z         },
2026-06-19T05:28:32.4315270Z         "impl": {
2026-06-19T05:28:32.4315386Z           "complete": true,
2026-06-19T05:28:32.4315491Z           "evidence": [
2026-06-19T05:28:32.4315594Z             {
2026-06-19T05:28:32.4315749Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.4315857Z               "line": 385
2026-06-19T05:28:32.4315961Z             }
2026-06-19T05:28:32.4316066Z           ]
2026-06-19T05:28:32.4316174Z         },
2026-06-19T05:28:32.4316277Z         "int": {
2026-06-19T05:28:32.4316402Z           "complete": false,
2026-06-19T05:28:32.4316527Z           "evidence": []
2026-06-19T05:28:32.4316640Z         },
2026-06-19T05:28:32.4316746Z         "unit": {
2026-06-19T05:28:32.4316865Z           "complete": true,
2026-06-19T05:28:32.4316979Z           "evidence": [
2026-06-19T05:28:32.4317085Z             {
2026-06-19T05:28:32.4317217Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.4317332Z               "line": 573
2026-06-19T05:28:32.4317433Z             }
2026-06-19T05:28:32.4317537Z           ]
2026-06-19T05:28:32.4317647Z         }
2026-06-19T05:28:32.4317752Z       }
2026-06-19T05:28:32.4317852Z     },
2026-06-19T05:28:32.4317962Z     {
2026-06-19T05:28:32.4318109Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-19T05:28:32.4318406Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-19T05:28:32.4318513Z       "requiredStages": [
2026-06-19T05:28:32.4318618Z         "impl",
2026-06-19T05:28:32.4318727Z         "unit"
2026-06-19T05:28:32.4318830Z       ],
2026-06-19T05:28:32.4319012Z       "stages": {
2026-06-19T05:28:32.4319117Z         "doc": {
2026-06-19T05:28:32.4319240Z           "complete": true,
2026-06-19T05:28:32.4319346Z           "evidence": [
2026-06-19T05:28:32.4319455Z             {
2026-06-19T05:28:32.4319599Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4319708Z               "line": 139
2026-06-19T05:28:32.4319812Z             }
2026-06-19T05:28:32.4319909Z           ]
2026-06-19T05:28:32.4320013Z         },
2026-06-19T05:28:32.4320117Z         "impl": {
2026-06-19T05:28:32.4320243Z           "complete": true,
2026-06-19T05:28:32.4320485Z           "evidence": [
2026-06-19T05:28:32.4320596Z             {
2026-06-19T05:28:32.4320742Z               "path": "crates/spt-store/src/db.rs",
2026-06-19T05:28:32.4320849Z               "line": 29
2026-06-19T05:28:32.4320958Z             },
2026-06-19T05:28:32.4321057Z             {
2026-06-19T05:28:32.4321206Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.4321442Z               "line": 101
2026-06-19T05:28:32.4321548Z             },
2026-06-19T05:28:32.4321652Z             {
2026-06-19T05:28:32.4321800Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4321915Z               "line": 30
2026-06-19T05:28:32.4322019Z             },
2026-06-19T05:28:32.4322125Z             {
2026-06-19T05:28:32.4322268Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4322382Z               "line": 48
2026-06-19T05:28:32.4322497Z             }
2026-06-19T05:28:32.4322592Z           ]
2026-06-19T05:28:32.4322696Z         },
2026-06-19T05:28:32.4322802Z         "int": {
2026-06-19T05:28:32.4322925Z           "complete": false,
2026-06-19T05:28:32.4323035Z           "evidence": []
2026-06-19T05:28:32.4323137Z         },
2026-06-19T05:28:32.4323244Z         "unit": {
2026-06-19T05:28:32.4323350Z           "complete": true,
2026-06-19T05:28:32.4323461Z           "evidence": [
2026-06-19T05:28:32.4323569Z             {
2026-06-19T05:28:32.4323735Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4323848Z               "line": 162
2026-06-19T05:28:32.4323947Z             }
2026-06-19T05:28:32.4324057Z           ]
2026-06-19T05:28:32.4324158Z         }
2026-06-19T05:28:32.4324262Z       }
2026-06-19T05:28:32.4324362Z     },
2026-06-19T05:28:32.4324468Z     {
2026-06-19T05:28:32.4324614Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-19T05:28:32.4325016Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-19T05:28:32.4325145Z       "requiredStages": [
2026-06-19T05:28:32.4325258Z         "doc",
2026-06-19T05:28:32.4325369Z         "impl",
2026-06-19T05:28:32.4325468Z         "unit"
2026-06-19T05:28:32.4325578Z       ],
2026-06-19T05:28:32.4325689Z       "stages": {
2026-06-19T05:28:32.4325788Z         "doc": {
2026-06-19T05:28:32.4325911Z           "complete": true,
2026-06-19T05:28:32.4326023Z           "evidence": [
2026-06-19T05:28:32.4326145Z             {
2026-06-19T05:28:32.4326284Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4326399Z               "line": 151
2026-06-19T05:28:32.4326511Z             }
2026-06-19T05:28:32.4326616Z           ]
2026-06-19T05:28:32.4326720Z         },
2026-06-19T05:28:32.4326815Z         "impl": {
2026-06-19T05:28:32.4326929Z           "complete": true,
2026-06-19T05:28:32.4327044Z           "evidence": [
2026-06-19T05:28:32.4327153Z             {
2026-06-19T05:28:32.4327306Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4327416Z               "line": 22
2026-06-19T05:28:32.4327529Z             }
2026-06-19T05:28:32.4327635Z           ]
2026-06-19T05:28:32.4327740Z         },
2026-06-19T05:28:32.4327849Z         "int": {
2026-06-19T05:28:32.4327974Z           "complete": false,
2026-06-19T05:28:32.4328088Z           "evidence": []
2026-06-19T05:28:32.4328188Z         },
2026-06-19T05:28:32.4328298Z         "unit": {
2026-06-19T05:28:32.4328407Z           "complete": true,
2026-06-19T05:28:32.4328522Z           "evidence": [
2026-06-19T05:28:32.4328627Z             {
2026-06-19T05:28:32.4328783Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4328904Z               "line": 298
2026-06-19T05:28:32.4329093Z             }
2026-06-19T05:28:32.4329202Z           ]
2026-06-19T05:28:32.4329306Z         }
2026-06-19T05:28:32.4329409Z       }
2026-06-19T05:28:32.4329515Z     },
2026-06-19T05:28:32.4329621Z     {
2026-06-19T05:28:32.4329777Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-19T05:28:32.4330249Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-19T05:28:32.4330488Z       "requiredStages": [
2026-06-19T05:28:32.4330592Z         "impl",
2026-06-19T05:28:32.4330706Z         "unit"
2026-06-19T05:28:32.4330808Z       ],
2026-06-19T05:28:32.4330921Z       "stages": {
2026-06-19T05:28:32.4331127Z         "doc": {
2026-06-19T05:28:32.4331236Z           "complete": true,
2026-06-19T05:28:32.4331350Z           "evidence": [
2026-06-19T05:28:32.4331457Z             {
2026-06-19T05:28:32.4331603Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4331719Z               "line": 145
2026-06-19T05:28:32.4331819Z             }
2026-06-19T05:28:32.4331926Z           ]
2026-06-19T05:28:32.4332031Z         },
2026-06-19T05:28:32.4332132Z         "impl": {
2026-06-19T05:28:32.4332246Z           "complete": true,
2026-06-19T05:28:32.4332370Z           "evidence": [
2026-06-19T05:28:32.4332475Z             {
2026-06-19T05:28:32.4332660Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-19T05:28:32.4332771Z               "line": 160
2026-06-19T05:28:32.4332871Z             },
2026-06-19T05:28:32.4332980Z             {
2026-06-19T05:28:32.4333138Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4333256Z               "line": 200
2026-06-19T05:28:32.4333368Z             },
2026-06-19T05:28:32.4333476Z             {
2026-06-19T05:28:32.4333629Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4333739Z               "line": 298
2026-06-19T05:28:32.4333848Z             },
2026-06-19T05:28:32.4333953Z             {
2026-06-19T05:28:32.4334105Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-19T05:28:32.4334214Z               "line": 20
2026-06-19T05:28:32.4334319Z             }
2026-06-19T05:28:32.4334418Z           ]
2026-06-19T05:28:32.4334522Z         },
2026-06-19T05:28:32.4334636Z         "int": {
2026-06-19T05:28:32.4334761Z           "complete": false,
2026-06-19T05:28:32.4334874Z           "evidence": []
2026-06-19T05:28:32.4334980Z         },
2026-06-19T05:28:32.4335089Z         "unit": {
2026-06-19T05:28:32.4335198Z           "complete": true,
2026-06-19T05:28:32.4335305Z           "evidence": [
2026-06-19T05:28:32.4335413Z             {
2026-06-19T05:28:32.4335571Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4335685Z               "line": 937
2026-06-19T05:28:32.4335799Z             },
2026-06-19T05:28:32.4335900Z             {
2026-06-19T05:28:32.4336062Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-19T05:28:32.4336176Z               "line": 88
2026-06-19T05:28:32.4336287Z             },
2026-06-19T05:28:32.4336386Z             {
2026-06-19T05:28:32.4336545Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4336662Z               "line": 851
2026-06-19T05:28:32.4336763Z             },
2026-06-19T05:28:32.4336874Z             {
2026-06-19T05:28:32.4337025Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4337148Z               "line": 870
2026-06-19T05:28:32.4337243Z             },
2026-06-19T05:28:32.4337346Z             {
2026-06-19T05:28:32.4337508Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:28:32.4337614Z               "line": 279
2026-06-19T05:28:32.4337727Z             },
2026-06-19T05:28:32.4337833Z             {
2026-06-19T05:28:32.4337980Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-19T05:28:32.4338094Z               "line": 82
2026-06-19T05:28:32.4338205Z             },
2026-06-19T05:28:32.4338309Z             {
2026-06-19T05:28:32.4338447Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-19T05:28:32.4338557Z               "line": 99
2026-06-19T05:28:32.4338652Z             },
2026-06-19T05:28:32.4338762Z             {
2026-06-19T05:28:32.4338896Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-19T05:28:32.4339192Z               "line": 119
2026-06-19T05:28:32.4339306Z             }
2026-06-19T05:28:32.4339407Z           ]
2026-06-19T05:28:32.4339516Z         }
2026-06-19T05:28:32.4339614Z       }
2026-06-19T05:28:32.4339724Z     },
2026-06-19T05:28:32.4339829Z     {
2026-06-19T05:28:32.4339974Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-19T05:28:32.4341310Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-19T05:28:32.4341534Z       "requiredStages": [
2026-06-19T05:28:32.4341639Z         "doc",
2026-06-19T05:28:32.4341744Z         "impl",
2026-06-19T05:28:32.4341844Z         "unit"
2026-06-19T05:28:32.4341964Z       ],
2026-06-19T05:28:32.4342069Z       "stages": {
2026-06-19T05:28:32.4342168Z         "doc": {
2026-06-19T05:28:32.4342289Z           "complete": true,
2026-06-19T05:28:32.4342398Z           "evidence": [
2026-06-19T05:28:32.4342501Z             {
2026-06-19T05:28:32.4342649Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4342764Z               "line": 157
2026-06-19T05:28:32.4342877Z             }
2026-06-19T05:28:32.4342988Z           ]
2026-06-19T05:28:32.4343093Z         },
2026-06-19T05:28:32.4343206Z         "impl": {
2026-06-19T05:28:32.4343322Z           "complete": true,
2026-06-19T05:28:32.4343440Z           "evidence": [
2026-06-19T05:28:32.4343535Z             {
2026-06-19T05:28:32.4343702Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:28:32.4343811Z               "line": 137
2026-06-19T05:28:32.4343913Z             },
2026-06-19T05:28:32.4344022Z             {
2026-06-19T05:28:32.4344184Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4344309Z               "line": 564
2026-06-19T05:28:32.4344418Z             },
2026-06-19T05:28:32.4344518Z             {
2026-06-19T05:28:32.4344689Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4344798Z               "line": 571
2026-06-19T05:28:32.4344908Z             },
2026-06-19T05:28:32.4345015Z             {
2026-06-19T05:28:32.4345173Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4345283Z               "line": 227
2026-06-19T05:28:32.4345387Z             }
2026-06-19T05:28:32.4345497Z           ]
2026-06-19T05:28:32.4345602Z         },
2026-06-19T05:28:32.4345711Z         "int": {
2026-06-19T05:28:32.4345821Z           "complete": false,
2026-06-19T05:28:32.4345936Z           "evidence": []
2026-06-19T05:28:32.4346049Z         },
2026-06-19T05:28:32.4346156Z         "unit": {
2026-06-19T05:28:32.4346284Z           "complete": true,
2026-06-19T05:28:32.4346393Z           "evidence": [
2026-06-19T05:28:32.4346509Z             {
2026-06-19T05:28:32.4346669Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4346785Z               "line": 1622
2026-06-19T05:28:32.4346889Z             },
2026-06-19T05:28:32.4346984Z             {
2026-06-19T05:28:32.4347148Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4347260Z               "line": 1680
2026-06-19T05:28:32.4347371Z             },
2026-06-19T05:28:32.4347472Z             {
2026-06-19T05:28:32.4347623Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4347741Z               "line": 883
2026-06-19T05:28:32.4347845Z             }
2026-06-19T05:28:32.4347958Z           ]
2026-06-19T05:28:32.4348058Z         }
2026-06-19T05:28:32.4348169Z       }
2026-06-19T05:28:32.4348273Z     },
2026-06-19T05:28:32.4348373Z     {
2026-06-19T05:28:32.4348526Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-19T05:28:32.4348751Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-19T05:28:32.4349056Z       "requiredStages": [
2026-06-19T05:28:32.4349165Z         "impl",
2026-06-19T05:28:32.4349269Z         "unit"
2026-06-19T05:28:32.4349381Z       ],
2026-06-19T05:28:32.4349489Z       "stages": {
2026-06-19T05:28:32.4349598Z         "doc": {
2026-06-19T05:28:32.4349705Z           "complete": false,
2026-06-19T05:28:32.4349928Z           "evidence": []
2026-06-19T05:28:32.4350029Z         },
2026-06-19T05:28:32.4350142Z         "impl": {
2026-06-19T05:28:32.4350255Z           "complete": true,
2026-06-19T05:28:32.4350360Z           "evidence": [
2026-06-19T05:28:32.4350468Z             {
2026-06-19T05:28:32.4350611Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.4350726Z               "line": 15
2026-06-19T05:28:32.4350835Z             },
2026-06-19T05:28:32.4350945Z             {
2026-06-19T05:28:32.4351089Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4351197Z               "line": 55
2026-06-19T05:28:32.4351317Z             },
2026-06-19T05:28:32.4351417Z             {
2026-06-19T05:28:32.4351570Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4351680Z               "line": 66
2026-06-19T05:28:32.4351784Z             },
2026-06-19T05:28:32.4351889Z             {
2026-06-19T05:28:32.4352027Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4352156Z               "line": 115
2026-06-19T05:28:32.4352252Z             },
2026-06-19T05:28:32.4352352Z             {
2026-06-19T05:28:32.4352485Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4352596Z               "line": 138
2026-06-19T05:28:32.4352704Z             }
2026-06-19T05:28:32.4352810Z           ]
2026-06-19T05:28:32.4352915Z         },
2026-06-19T05:28:32.4353018Z         "int": {
2026-06-19T05:28:32.4353137Z           "complete": false,
2026-06-19T05:28:32.4353253Z           "evidence": []
2026-06-19T05:28:32.4353366Z         },
2026-06-19T05:28:32.4353475Z         "unit": {
2026-06-19T05:28:32.4353582Z           "complete": true,
2026-06-19T05:28:32.4353700Z           "evidence": [
2026-06-19T05:28:32.4353805Z             {
2026-06-19T05:28:32.4353948Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.4354052Z               "line": 363
2026-06-19T05:28:32.4354163Z             },
2026-06-19T05:28:32.4354281Z             {
2026-06-19T05:28:32.4354415Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.4354535Z               "line": 369
2026-06-19T05:28:32.4354635Z             },
2026-06-19T05:28:32.4354744Z             {
2026-06-19T05:28:32.4354869Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.4354973Z               "line": 383
2026-06-19T05:28:32.4355078Z             },
2026-06-19T05:28:32.4355179Z             {
2026-06-19T05:28:32.4355315Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.4355420Z               "line": 392
2026-06-19T05:28:32.4355534Z             },
2026-06-19T05:28:32.4355637Z             {
2026-06-19T05:28:32.4355790Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4355904Z               "line": 195
2026-06-19T05:28:32.4356009Z             },
2026-06-19T05:28:32.4356120Z             {
2026-06-19T05:28:32.4356261Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4356539Z               "line": 208
2026-06-19T05:28:32.4356648Z             },
2026-06-19T05:28:32.4356754Z             {
2026-06-19T05:28:32.4356905Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4357021Z               "line": 271
2026-06-19T05:28:32.4357130Z             },
2026-06-19T05:28:32.4357234Z             {
2026-06-19T05:28:32.4357388Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4357506Z               "line": 290
2026-06-19T05:28:32.4357607Z             },
2026-06-19T05:28:32.4357713Z             {
2026-06-19T05:28:32.4357854Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4358107Z               "line": 319
2026-06-19T05:28:32.4358211Z             }
2026-06-19T05:28:32.4358311Z           ]
2026-06-19T05:28:32.4358415Z         }
2026-06-19T05:28:32.4358514Z       }
2026-06-19T05:28:32.4358623Z     },
2026-06-19T05:28:32.4358715Z     {
2026-06-19T05:28:32.4358857Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-19T05:28:32.4359306Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-19T05:28:32.4359429Z       "requiredStages": [
2026-06-19T05:28:32.4359544Z         "impl",
2026-06-19T05:28:32.4359645Z         "unit",
2026-06-19T05:28:32.4359763Z         "int"
2026-06-19T05:28:32.4359863Z       ],
2026-06-19T05:28:32.4359973Z       "stages": {
2026-06-19T05:28:32.4360078Z         "doc": {
2026-06-19T05:28:32.4360207Z           "complete": false,
2026-06-19T05:28:32.4360312Z           "evidence": []
2026-06-19T05:28:32.4360416Z         },
2026-06-19T05:28:32.4360532Z         "impl": {
2026-06-19T05:28:32.4360650Z           "complete": true,
2026-06-19T05:28:32.4360759Z           "evidence": [
2026-06-19T05:28:32.4360858Z             {
2026-06-19T05:28:32.4361009Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.4361123Z               "line": 448
2026-06-19T05:28:32.4361224Z             },
2026-06-19T05:28:32.4361343Z             {
2026-06-19T05:28:32.4361490Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.4361601Z               "line": 868
2026-06-19T05:28:32.4361705Z             },
2026-06-19T05:28:32.4365429Z             {
2026-06-19T05:28:32.4365633Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.4365753Z               "line": 913
2026-06-19T05:28:32.4365861Z             },
2026-06-19T05:28:32.4365966Z             {
2026-06-19T05:28:32.4366122Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.4366240Z               "line": 938
2026-06-19T05:28:32.4366375Z             },
2026-06-19T05:28:32.4366488Z             {
2026-06-19T05:28:32.4366641Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.4366761Z               "line": 1006
2026-06-19T05:28:32.4366864Z             },
2026-06-19T05:28:32.4366980Z             {
2026-06-19T05:28:32.4367127Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.4367257Z               "line": 1188
2026-06-19T05:28:32.4367366Z             },
2026-06-19T05:28:32.4367475Z             {
2026-06-19T05:28:32.4367629Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.4367738Z               "line": 1319
2026-06-19T05:28:32.4367852Z             },
2026-06-19T05:28:32.4367944Z             {
2026-06-19T05:28:32.4368095Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.4368216Z               "line": 1367
2026-06-19T05:28:32.4368315Z             },
2026-06-19T05:28:32.4368419Z             {
2026-06-19T05:28:32.4368573Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:28:32.4368677Z               "line": 46
2026-06-19T05:28:32.4368781Z             },
2026-06-19T05:28:32.4368890Z             {
2026-06-19T05:28:32.4369126Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:28:32.4369232Z               "line": 167
2026-06-19T05:28:32.4369341Z             },
2026-06-19T05:28:32.4369450Z             {
2026-06-19T05:28:32.4369594Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:28:32.4369708Z               "line": 132
2026-06-19T05:28:32.4369809Z             },
2026-06-19T05:28:32.4369923Z             {
2026-06-19T05:28:32.4370065Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4370176Z               "line": 137
2026-06-19T05:28:32.4370275Z             },
2026-06-19T05:28:32.4370385Z             {
2026-06-19T05:28:32.4370529Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4370643Z               "line": 183
2026-06-19T05:28:32.4370886Z             }
2026-06-19T05:28:32.4370996Z           ]
2026-06-19T05:28:32.4371097Z         },
2026-06-19T05:28:32.4371206Z         "int": {
2026-06-19T05:28:32.4371333Z           "complete": true,
2026-06-19T05:28:32.4371443Z           "evidence": [
2026-06-19T05:28:32.4371555Z             {
2026-06-19T05:28:32.4371731Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-19T05:28:32.4371946Z               "line": 27
2026-06-19T05:28:32.4372060Z             },
2026-06-19T05:28:32.4372170Z             {
2026-06-19T05:28:32.4372336Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-19T05:28:32.4372451Z               "line": 148
2026-06-19T05:28:32.4372556Z             },
2026-06-19T05:28:32.4372666Z             {
2026-06-19T05:28:32.4372818Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-19T05:28:32.4372938Z               "line": 200
2026-06-19T05:28:32.4373039Z             }
2026-06-19T05:28:32.4373147Z           ]
2026-06-19T05:28:32.4373257Z         },
2026-06-19T05:28:32.4373368Z         "unit": {
2026-06-19T05:28:32.4373490Z           "complete": true,
2026-06-19T05:28:32.4373600Z           "evidence": [
2026-06-19T05:28:32.4373707Z             {
2026-06-19T05:28:32.4373858Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:28:32.4373973Z               "line": 313
2026-06-19T05:28:32.4374092Z             },
2026-06-19T05:28:32.4374195Z             {
2026-06-19T05:28:32.4374353Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:28:32.4374463Z               "line": 345
2026-06-19T05:28:32.4374562Z             },
2026-06-19T05:28:32.4374668Z             {
2026-06-19T05:28:32.4374820Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-19T05:28:32.4374935Z               "line": 366
2026-06-19T05:28:32.4375040Z             },
2026-06-19T05:28:32.4375149Z             {
2026-06-19T05:28:32.4375298Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.4375421Z               "line": 625
2026-06-19T05:28:32.4375530Z             },
2026-06-19T05:28:32.4375641Z             {
2026-06-19T05:28:32.4375798Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-19T05:28:32.4375904Z               "line": 289
2026-06-19T05:28:32.4376013Z             },
2026-06-19T05:28:32.4376108Z             {
2026-06-19T05:28:32.4376256Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-19T05:28:32.4376379Z               "line": 230
2026-06-19T05:28:32.4376493Z             },
2026-06-19T05:28:32.4376597Z             {
2026-06-19T05:28:32.4376738Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4376858Z               "line": 526
2026-06-19T05:28:32.4376963Z             },
2026-06-19T05:28:32.4377072Z             {
2026-06-19T05:28:32.4377211Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.4377330Z               "line": 556
2026-06-19T05:28:32.4377439Z             }
2026-06-19T05:28:32.4377540Z           ]
2026-06-19T05:28:32.4377654Z         }
2026-06-19T05:28:32.4377753Z       }
2026-06-19T05:28:32.4377860Z     },
2026-06-19T05:28:32.4377964Z     {
2026-06-19T05:28:32.4378169Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-19T05:28:32.4380054Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-19T05:28:32.4380183Z       "requiredStages": [
2026-06-19T05:28:32.4380287Z         "doc",
2026-06-19T05:28:32.4380398Z         "impl",
2026-06-19T05:28:32.4380492Z         "unit"
2026-06-19T05:28:32.4380717Z       ],
2026-06-19T05:28:32.4380821Z       "stages": {
2026-06-19T05:28:32.4380931Z         "doc": {
2026-06-19T05:28:32.4381051Z           "complete": true,
2026-06-19T05:28:32.4381155Z           "evidence": [
2026-06-19T05:28:32.4381265Z             {
2026-06-19T05:28:32.4381409Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4381522Z               "line": 314
2026-06-19T05:28:32.4381738Z             }
2026-06-19T05:28:32.4381846Z           ]
2026-06-19T05:28:32.4381950Z         },
2026-06-19T05:28:32.4382055Z         "impl": {
2026-06-19T05:28:32.4382177Z           "complete": true,
2026-06-19T05:28:32.4382287Z           "evidence": [
2026-06-19T05:28:32.4382392Z             {
2026-06-19T05:28:32.4382563Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-19T05:28:32.4382683Z               "line": 33
2026-06-19T05:28:32.4382783Z             },
2026-06-19T05:28:32.4382887Z             {
2026-06-19T05:28:32.4383059Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-19T05:28:32.4383183Z               "line": 39
2026-06-19T05:28:32.4383284Z             }
2026-06-19T05:28:32.4383388Z           ]
2026-06-19T05:28:32.4383493Z         },
2026-06-19T05:28:32.4383599Z         "int": {
2026-06-19T05:28:32.4383722Z           "complete": false,
2026-06-19T05:28:32.4383836Z           "evidence": []
2026-06-19T05:28:32.4383938Z         },
2026-06-19T05:28:32.4384050Z         "unit": {
2026-06-19T05:28:32.4384165Z           "complete": true,
2026-06-19T05:28:32.4384272Z           "evidence": [
2026-06-19T05:28:32.4384379Z             {
2026-06-19T05:28:32.4384538Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-19T05:28:32.4384661Z               "line": 95
2026-06-19T05:28:32.4384760Z             }
2026-06-19T05:28:32.4384870Z           ]
2026-06-19T05:28:32.4384971Z         }
2026-06-19T05:28:32.4385075Z       }
2026-06-19T05:28:32.4385175Z     },
2026-06-19T05:28:32.4385281Z     {
2026-06-19T05:28:32.4385423Z       "id": "REQ-HAZARD-ROSTER-GHOST",
2026-06-19T05:28:32.4387899Z       "title": "A LOCAL subnet roster entry whose backing perch is erased does NOT keep advertising Active (no phantom perch-less endpoint). `api session-end <id> --erase` removes the perch (owlery dir gone) but the subnet roster (identity/registry/<subnet>.json) keeps the endpoint's instance row ACTIVE with no backing perch; `endpoint stop` says 'address unregistered' yet the line persists; no CLI verb forgets a roster entry, and a hand-edit is re-added by the single-writer daemon advertiser. FIX: daemon-side self-heal — the advertiser DROPS/forgets a LOCAL roster entry whose backing perch no longer exists (stops advertising it Active), and/or a `forget`/evict verb; verify whether the epoch lease eventually evicts it (slow-self-heal) vs a real leak and scope accordingly. doyle secondary finding (perri). (post-v0.10.0)",
2026-06-19T05:28:32.4388047Z       "requiredStages": [
2026-06-19T05:28:32.4388153Z         "impl",
2026-06-19T05:28:32.4388271Z         "unit"
2026-06-19T05:28:32.4388377Z       ],
2026-06-19T05:28:32.4388482Z       "stages": {
2026-06-19T05:28:32.4388595Z         "doc": {
2026-06-19T05:28:32.4388721Z           "complete": false,
2026-06-19T05:28:32.4388834Z           "evidence": []
2026-06-19T05:28:32.4389021Z         },
2026-06-19T05:28:32.4389130Z         "impl": {
2026-06-19T05:28:32.4389253Z           "complete": true,
2026-06-19T05:28:32.4389388Z           "evidence": [
2026-06-19T05:28:32.4389496Z             {
2026-06-19T05:28:32.4389660Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4389774Z               "line": 488
2026-06-19T05:28:32.4389877Z             }
2026-06-19T05:28:32.4389982Z           ]
2026-06-19T05:28:32.4390091Z         },
2026-06-19T05:28:32.4390194Z         "int": {
2026-06-19T05:28:32.4390323Z           "complete": false,
2026-06-19T05:28:32.4390443Z           "evidence": []
2026-06-19T05:28:32.4390537Z         },
2026-06-19T05:28:32.4390653Z         "unit": {
2026-06-19T05:28:32.4390890Z           "complete": true,
2026-06-19T05:28:32.4391006Z           "evidence": [
2026-06-19T05:28:32.4391101Z             {
2026-06-19T05:28:32.4391268Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4391382Z               "line": 1466
2026-06-19T05:28:32.4391486Z             }
2026-06-19T05:28:32.4391592Z           ]
2026-06-19T05:28:32.4391787Z         }
2026-06-19T05:28:32.4391888Z       }
2026-06-19T05:28:32.4391993Z     },
2026-06-19T05:28:32.4392097Z     {
2026-06-19T05:28:32.4392231Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-19T05:28:32.4394397Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-19T05:28:32.4394550Z       "requiredStages": [
2026-06-19T05:28:32.4394663Z         "unit"
2026-06-19T05:28:32.4394770Z       ],
2026-06-19T05:28:32.4394878Z       "stages": {
2026-06-19T05:28:32.4394983Z         "doc": {
2026-06-19T05:28:32.4395099Z           "complete": false,
2026-06-19T05:28:32.4395207Z           "evidence": []
2026-06-19T05:28:32.4395311Z         },
2026-06-19T05:28:32.4395420Z         "impl": {
2026-06-19T05:28:32.4395527Z           "complete": true,
2026-06-19T05:28:32.4395635Z           "evidence": [
2026-06-19T05:28:32.4395740Z             {
2026-06-19T05:28:32.4395879Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4396016Z               "line": 3396
2026-06-19T05:28:32.4396127Z             },
2026-06-19T05:28:32.4396245Z             {
2026-06-19T05:28:32.4396379Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4396499Z               "line": 3448
2026-06-19T05:28:32.4396603Z             },
2026-06-19T05:28:32.4396709Z             {
2026-06-19T05:28:32.4396837Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4396960Z               "line": 3493
2026-06-19T05:28:32.4397072Z             },
2026-06-19T05:28:32.4397175Z             {
2026-06-19T05:28:32.4397314Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4397428Z               "line": 92
2026-06-19T05:28:32.4397537Z             },
2026-06-19T05:28:32.4397641Z             {
2026-06-19T05:28:32.4397788Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4397901Z               "line": 148
2026-06-19T05:28:32.4398007Z             },
2026-06-19T05:28:32.4398108Z             {
2026-06-19T05:28:32.4398249Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4398374Z               "line": 192
2026-06-19T05:28:32.4398474Z             },
2026-06-19T05:28:32.4398583Z             {
2026-06-19T05:28:32.4398727Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4398831Z               "line": 200
2026-06-19T05:28:32.4399037Z             },
2026-06-19T05:28:32.4399137Z             {
2026-06-19T05:28:32.4399281Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4399389Z               "line": 211
2026-06-19T05:28:32.4399499Z             },
2026-06-19T05:28:32.4399614Z             {
2026-06-19T05:28:32.4399751Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4399867Z               "line": 265
2026-06-19T05:28:32.4399967Z             },
2026-06-19T05:28:32.4400075Z             {
2026-06-19T05:28:32.4400205Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4400324Z               "line": 279
2026-06-19T05:28:32.4400566Z             }
2026-06-19T05:28:32.4400669Z           ]
2026-06-19T05:28:32.4400773Z         },
2026-06-19T05:28:32.4400884Z         "int": {
2026-06-19T05:28:32.4401008Z           "complete": false,
2026-06-19T05:28:32.4401111Z           "evidence": []
2026-06-19T05:28:32.4401222Z         },
2026-06-19T05:28:32.4401327Z         "unit": {
2026-06-19T05:28:32.4401551Z           "complete": true,
2026-06-19T05:28:32.4401670Z           "evidence": [
2026-06-19T05:28:32.4401775Z             {
2026-06-19T05:28:32.4401909Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4402032Z               "line": 419
2026-06-19T05:28:32.4402138Z             },
2026-06-19T05:28:32.4402247Z             {
2026-06-19T05:28:32.4402380Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4402500Z               "line": 470
2026-06-19T05:28:32.4402604Z             },
2026-06-19T05:28:32.4402709Z             {
2026-06-19T05:28:32.4402853Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4402961Z               "line": 499
2026-06-19T05:28:32.4403070Z             },
2026-06-19T05:28:32.4403171Z             {
2026-06-19T05:28:32.4403316Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4403431Z               "line": 526
2026-06-19T05:28:32.4403537Z             }
2026-06-19T05:28:32.4403640Z           ]
2026-06-19T05:28:32.4403746Z         }
2026-06-19T05:28:32.4403846Z       }
2026-06-19T05:28:32.4403945Z     },
2026-06-19T05:28:32.4404046Z     {
2026-06-19T05:28:32.4404184Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-19T05:28:32.4404404Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-19T05:28:32.4404537Z       "requiredStages": [
2026-06-19T05:28:32.4404642Z         "impl",
2026-06-19T05:28:32.4404743Z         "unit"
2026-06-19T05:28:32.4404847Z       ],
2026-06-19T05:28:32.4404947Z       "stages": {
2026-06-19T05:28:32.4405048Z         "doc": {
2026-06-19T05:28:32.4405170Z           "complete": false,
2026-06-19T05:28:32.4405291Z           "evidence": []
2026-06-19T05:28:32.4405397Z         },
2026-06-19T05:28:32.4405499Z         "impl": {
2026-06-19T05:28:32.4405606Z           "complete": true,
2026-06-19T05:28:32.4405711Z           "evidence": [
2026-06-19T05:28:32.4405819Z             {
2026-06-19T05:28:32.4405976Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.4406092Z               "line": 62
2026-06-19T05:28:32.4406200Z             },
2026-06-19T05:28:32.4406310Z             {
2026-06-19T05:28:32.4406467Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.4406586Z               "line": 71
2026-06-19T05:28:32.4406687Z             },
2026-06-19T05:28:32.4406801Z             {
2026-06-19T05:28:32.4406964Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.4407077Z               "line": 80
2026-06-19T05:28:32.4407187Z             },
2026-06-19T05:28:32.4407293Z             {
2026-06-19T05:28:32.4407440Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.4407545Z               "line": 88
2026-06-19T05:28:32.4407651Z             },
2026-06-19T05:28:32.4407754Z             {
2026-06-19T05:28:32.4407898Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4408012Z               "line": 33
2026-06-19T05:28:32.4408121Z             },
2026-06-19T05:28:32.4408230Z             {
2026-06-19T05:28:32.4408362Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4408475Z               "line": 65
2026-06-19T05:28:32.4408581Z             },
2026-06-19T05:28:32.4408686Z             {
2026-06-19T05:28:32.4408829Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4409015Z               "line": 74
2026-06-19T05:28:32.4409119Z             },
2026-06-19T05:28:32.4409225Z             {
2026-06-19T05:28:32.4409367Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4409478Z               "line": 93
2026-06-19T05:28:32.4409687Z             },
2026-06-19T05:28:32.4409792Z             {
2026-06-19T05:28:32.4409969Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4410092Z               "line": 102
2026-06-19T05:28:32.4410208Z             },
2026-06-19T05:28:32.4410312Z             {
2026-06-19T05:28:32.4410451Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4410665Z               "line": 111
2026-06-19T05:28:32.4410770Z             },
2026-06-19T05:28:32.4410870Z             {
2026-06-19T05:28:32.4411011Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4411131Z               "line": 122
2026-06-19T05:28:32.4411243Z             },
2026-06-19T05:28:32.4411347Z             {
2026-06-19T05:28:32.4411487Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4411601Z               "line": 140
2026-06-19T05:28:32.4411705Z             },
2026-06-19T05:28:32.4411816Z             {
2026-06-19T05:28:32.4411967Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4412092Z               "line": 149
2026-06-19T05:28:32.4412207Z             },
2026-06-19T05:28:32.4412315Z             {
2026-06-19T05:28:32.4412455Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4412569Z               "line": 158
2026-06-19T05:28:32.4412674Z             },
2026-06-19T05:28:32.4412793Z             {
2026-06-19T05:28:32.4412935Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4413061Z               "line": 169
2026-06-19T05:28:32.4413155Z             },
2026-06-19T05:28:32.4413264Z             {
2026-06-19T05:28:32.4413395Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4413517Z               "line": 177
2026-06-19T05:28:32.4413612Z             },
2026-06-19T05:28:32.4413712Z             {
2026-06-19T05:28:32.4413848Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4413957Z               "line": 186
2026-06-19T05:28:32.4414073Z             },
2026-06-19T05:28:32.4414177Z             {
2026-06-19T05:28:32.4414320Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4414430Z               "line": 195
2026-06-19T05:28:32.4414534Z             },
2026-06-19T05:28:32.4414645Z             {
2026-06-19T05:28:32.4414773Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4414897Z               "line": 204
2026-06-19T05:28:32.4415003Z             },
2026-06-19T05:28:32.4415107Z             {
2026-06-19T05:28:32.4415255Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4415365Z               "line": 216
2026-06-19T05:28:32.4415474Z             },
2026-06-19T05:28:32.4415565Z             {
2026-06-19T05:28:32.4415712Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4415827Z               "line": 223
2026-06-19T05:28:32.4415933Z             },
2026-06-19T05:28:32.4416041Z             {
2026-06-19T05:28:32.4416180Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4416305Z               "line": 232
2026-06-19T05:28:32.4416402Z             },
2026-06-19T05:28:32.4416512Z             {
2026-06-19T05:28:32.4416647Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4416769Z               "line": 239
2026-06-19T05:28:32.4416879Z             },
2026-06-19T05:28:32.4416990Z             {
2026-06-19T05:28:32.4417136Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4417248Z               "line": 306
2026-06-19T05:28:32.4417357Z             },
2026-06-19T05:28:32.4417466Z             {
2026-06-19T05:28:32.4417614Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4417728Z               "line": 318
2026-06-19T05:28:32.4417834Z             },
2026-06-19T05:28:32.4417938Z             {
2026-06-19T05:28:32.4418071Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4418182Z               "line": 405
2026-06-19T05:28:32.4418372Z             }
2026-06-19T05:28:32.4418473Z           ]
2026-06-19T05:28:32.4418582Z         },
2026-06-19T05:28:32.4418686Z         "int": {
2026-06-19T05:28:32.4418810Z           "complete": false,
2026-06-19T05:28:32.4418917Z           "evidence": []
2026-06-19T05:28:32.4419103Z         },
2026-06-19T05:28:32.4419214Z         "unit": {
2026-06-19T05:28:32.4419332Z           "complete": true,
2026-06-19T05:28:32.4419552Z           "evidence": [
2026-06-19T05:28:32.4419656Z             {
2026-06-19T05:28:32.4419804Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4419923Z               "line": 487
2026-06-19T05:28:32.4420033Z             },
2026-06-19T05:28:32.4420138Z             {
2026-06-19T05:28:32.4420285Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4420410Z               "line": 528
2026-06-19T05:28:32.4420514Z             },
2026-06-19T05:28:32.4420624Z             {
2026-06-19T05:28:32.4420768Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4420896Z               "line": 541
2026-06-19T05:28:32.4420997Z             },
2026-06-19T05:28:32.4421097Z             {
2026-06-19T05:28:32.4421244Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4421350Z               "line": 627
2026-06-19T05:28:32.4421468Z             }
2026-06-19T05:28:32.4421571Z           ]
2026-06-19T05:28:32.4421682Z         }
2026-06-19T05:28:32.4421789Z       }
2026-06-19T05:28:32.4421893Z     },
2026-06-19T05:28:32.4421999Z     {
2026-06-19T05:28:32.4422128Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-19T05:28:32.4422357Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-19T05:28:32.4422475Z       "requiredStages": [
2026-06-19T05:28:32.4422585Z         "impl",
2026-06-19T05:28:32.4422695Z         "unit"
2026-06-19T05:28:32.4422790Z       ],
2026-06-19T05:28:32.4422900Z       "stages": {
2026-06-19T05:28:32.4423005Z         "doc": {
2026-06-19T05:28:32.4423133Z           "complete": false,
2026-06-19T05:28:32.4423239Z           "evidence": []
2026-06-19T05:28:32.4423344Z         },
2026-06-19T05:28:32.4423448Z         "impl": {
2026-06-19T05:28:32.4423558Z           "complete": true,
2026-06-19T05:28:32.4423678Z           "evidence": [
2026-06-19T05:28:32.4423782Z             {
2026-06-19T05:28:32.4423927Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.4424044Z               "line": 173
2026-06-19T05:28:32.4424148Z             },
2026-06-19T05:28:32.4424253Z             {
2026-06-19T05:28:32.4424399Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.4424517Z               "line": 167
2026-06-19T05:28:32.4424624Z             }
2026-06-19T05:28:32.4424733Z           ]
2026-06-19T05:28:32.4424837Z         },
2026-06-19T05:28:32.4424948Z         "int": {
2026-06-19T05:28:32.4425071Z           "complete": false,
2026-06-19T05:28:32.4425181Z           "evidence": []
2026-06-19T05:28:32.4425286Z         },
2026-06-19T05:28:32.4425395Z         "unit": {
2026-06-19T05:28:32.4425515Z           "complete": true,
2026-06-19T05:28:32.4425629Z           "evidence": [
2026-06-19T05:28:32.4425733Z             {
2026-06-19T05:28:32.4425878Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.4425987Z               "line": 295
2026-06-19T05:28:32.4426091Z             },
2026-06-19T05:28:32.4426202Z             {
2026-06-19T05:28:32.4426354Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.4426460Z               "line": 832
2026-06-19T05:28:32.4426564Z             },
2026-06-19T05:28:32.4426664Z             {
2026-06-19T05:28:32.4426803Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.4426907Z               "line": 845
2026-06-19T05:28:32.4427010Z             }
2026-06-19T05:28:32.4427120Z           ]
2026-06-19T05:28:32.4427226Z         }
2026-06-19T05:28:32.4427334Z       }
2026-06-19T05:28:32.4427445Z     },
2026-06-19T05:28:32.4427545Z     {
2026-06-19T05:28:32.4427798Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-19T05:28:32.4427963Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-19T05:28:32.4428089Z       "requiredStages": [
2026-06-19T05:28:32.4428197Z         "impl",
2026-06-19T05:28:32.4428302Z         "unit"
2026-06-19T05:28:32.4428408Z       ],
2026-06-19T05:28:32.4428512Z       "stages": {
2026-06-19T05:28:32.4428714Z         "doc": {
2026-06-19T05:28:32.4428827Z           "complete": false,
2026-06-19T05:28:32.4429029Z           "evidence": []
2026-06-19T05:28:32.4429128Z         },
2026-06-19T05:28:32.4429236Z         "impl": {
2026-06-19T05:28:32.4429350Z           "complete": true,
2026-06-19T05:28:32.4429464Z           "evidence": [
2026-06-19T05:28:32.4429573Z             {
2026-06-19T05:28:32.4429754Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4429887Z               "line": 116
2026-06-19T05:28:32.4429992Z             },
2026-06-19T05:28:32.4430097Z             {
2026-06-19T05:28:32.4430268Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.4430379Z               "line": 507
2026-06-19T05:28:32.4430483Z             }
2026-06-19T05:28:32.4430588Z           ]
2026-06-19T05:28:32.4430694Z         },
2026-06-19T05:28:32.4430798Z         "int": {
2026-06-19T05:28:32.4430927Z           "complete": false,
2026-06-19T05:28:32.4431055Z           "evidence": []
2026-06-19T05:28:32.4431165Z         },
2026-06-19T05:28:32.4431281Z         "unit": {
2026-06-19T05:28:32.4431389Z           "complete": true,
2026-06-19T05:28:32.4431513Z           "evidence": [
2026-06-19T05:28:32.4431620Z             {
2026-06-19T05:28:32.4431790Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.4431896Z               "line": 541
2026-06-19T05:28:32.4432004Z             }
2026-06-19T05:28:32.4432108Z           ]
2026-06-19T05:28:32.4432213Z         }
2026-06-19T05:28:32.4432308Z       }
2026-06-19T05:28:32.4432411Z     },
2026-06-19T05:28:32.4432516Z     {
2026-06-19T05:28:32.4432665Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-19T05:28:32.4432859Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-19T05:28:32.4432984Z       "requiredStages": [
2026-06-19T05:28:32.4433088Z         "impl",
2026-06-19T05:28:32.4433194Z         "unit"
2026-06-19T05:28:32.4433298Z       ],
2026-06-19T05:28:32.4433407Z       "stages": {
2026-06-19T05:28:32.4433513Z         "doc": {
2026-06-19T05:28:32.4433622Z           "complete": false,
2026-06-19T05:28:32.4433741Z           "evidence": []
2026-06-19T05:28:32.4433838Z         },
2026-06-19T05:28:32.4433941Z         "impl": {
2026-06-19T05:28:32.4434051Z           "complete": true,
2026-06-19T05:28:32.4434167Z           "evidence": [
2026-06-19T05:28:32.4434270Z             {
2026-06-19T05:28:32.4434424Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4434548Z               "line": 552
2026-06-19T05:28:32.4434647Z             },
2026-06-19T05:28:32.4434746Z             {
2026-06-19T05:28:32.4434893Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:28:32.4435001Z               "line": 28
2026-06-19T05:28:32.4435111Z             }
2026-06-19T05:28:32.4435217Z           ]
2026-06-19T05:28:32.4435321Z         },
2026-06-19T05:28:32.4435426Z         "int": {
2026-06-19T05:28:32.4435550Z           "complete": false,
2026-06-19T05:28:32.4435668Z           "evidence": []
2026-06-19T05:28:32.4435779Z         },
2026-06-19T05:28:32.4435889Z         "unit": {
2026-06-19T05:28:32.4436007Z           "complete": true,
2026-06-19T05:28:32.4436123Z           "evidence": [
2026-06-19T05:28:32.4436227Z             {
2026-06-19T05:28:32.4436380Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:28:32.4436490Z               "line": 229
2026-06-19T05:28:32.4436604Z             }
2026-06-19T05:28:32.4436715Z           ]
2026-06-19T05:28:32.4436818Z         }
2026-06-19T05:28:32.4436923Z       }
2026-06-19T05:28:32.4437025Z     },
2026-06-19T05:28:32.4437243Z     {
2026-06-19T05:28:32.4437373Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-19T05:28:32.4437546Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-19T05:28:32.4437666Z       "requiredStages": [],
2026-06-19T05:28:32.4437772Z       "stages": {
2026-06-19T05:28:32.4437885Z         "doc": {
2026-06-19T05:28:32.4437996Z           "complete": false,
2026-06-19T05:28:32.4438353Z           "evidence": []
2026-06-19T05:28:32.4438458Z         },
2026-06-19T05:28:32.4438567Z         "impl": {
2026-06-19T05:28:32.4438678Z           "complete": false,
2026-06-19T05:28:32.4438792Z           "evidence": []
2026-06-19T05:28:32.4438901Z         },
2026-06-19T05:28:32.4439096Z         "int": {
2026-06-19T05:28:32.4439221Z           "complete": false,
2026-06-19T05:28:32.4439336Z           "evidence": []
2026-06-19T05:28:32.4439444Z         },
2026-06-19T05:28:32.4439550Z         "unit": {
2026-06-19T05:28:32.4439655Z           "complete": false,
2026-06-19T05:28:32.4439777Z           "evidence": []
2026-06-19T05:28:32.4439882Z         }
2026-06-19T05:28:32.4439992Z       }
2026-06-19T05:28:32.4440085Z     },
2026-06-19T05:28:32.4440194Z     {
2026-06-19T05:28:32.4440334Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-19T05:28:32.4440514Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-19T05:28:32.4440634Z       "requiredStages": [
2026-06-19T05:28:32.4440747Z         "impl",
2026-06-19T05:28:32.4440858Z         "unit"
2026-06-19T05:28:32.4440962Z       ],
2026-06-19T05:28:32.4441071Z       "stages": {
2026-06-19T05:28:32.4441187Z         "doc": {
2026-06-19T05:28:32.4441306Z           "complete": false,
2026-06-19T05:28:32.4441429Z           "evidence": []
2026-06-19T05:28:32.4441535Z         },
2026-06-19T05:28:32.4441639Z         "impl": {
2026-06-19T05:28:32.4441758Z           "complete": true,
2026-06-19T05:28:32.4441860Z           "evidence": [
2026-06-19T05:28:32.4441972Z             {
2026-06-19T05:28:32.4442112Z               "path": "crates/spt-live/src/turn.rs",
2026-06-19T05:28:32.4442227Z               "line": 19
2026-06-19T05:28:32.4442321Z             },
2026-06-19T05:28:32.4442432Z             {
2026-06-19T05:28:32.4442583Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4442697Z               "line": 463
2026-06-19T05:28:32.4442806Z             },
2026-06-19T05:28:32.4442905Z             {
2026-06-19T05:28:32.4443071Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4443177Z               "line": 499
2026-06-19T05:28:32.4443286Z             },
2026-06-19T05:28:32.4443390Z             {
2026-06-19T05:28:32.4443544Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4443657Z               "line": 547
2026-06-19T05:28:32.4443749Z             },
2026-06-19T05:28:32.4443858Z             {
2026-06-19T05:28:32.4443996Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:28:32.4444112Z               "line": 15
2026-06-19T05:28:32.4444216Z             },
2026-06-19T05:28:32.4444320Z             {
2026-06-19T05:28:32.4444464Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:28:32.4444568Z               "line": 48
2026-06-19T05:28:32.4444679Z             },
2026-06-19T05:28:32.4444770Z             {
2026-06-19T05:28:32.4444912Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:28:32.4445027Z               "line": 119
2026-06-19T05:28:32.4445141Z             },
2026-06-19T05:28:32.4445254Z             {
2026-06-19T05:28:32.4445388Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4445504Z               "line": 3824
2026-06-19T05:28:32.4445604Z             }
2026-06-19T05:28:32.4445710Z           ]
2026-06-19T05:28:32.4445810Z         },
2026-06-19T05:28:32.4445918Z         "int": {
2026-06-19T05:28:32.4446044Z           "complete": false,
2026-06-19T05:28:32.4446153Z           "evidence": []
2026-06-19T05:28:32.4446267Z         },
2026-06-19T05:28:32.4446372Z         "unit": {
2026-06-19T05:28:32.4446606Z           "complete": true,
2026-06-19T05:28:32.4446721Z           "evidence": [
2026-06-19T05:28:32.4446830Z             {
2026-06-19T05:28:32.4446984Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4447093Z               "line": 765
2026-06-19T05:28:32.4447197Z             },
2026-06-19T05:28:32.4447299Z             {
2026-06-19T05:28:32.4447536Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:28:32.4447642Z               "line": 165
2026-06-19T05:28:32.4447750Z             },
2026-06-19T05:28:32.4447861Z             {
2026-06-19T05:28:32.4447999Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-19T05:28:32.4448121Z               "line": 175
2026-06-19T05:28:32.4448221Z             }
2026-06-19T05:28:32.4448318Z           ]
2026-06-19T05:28:32.4448422Z         }
2026-06-19T05:28:32.4448531Z       }
2026-06-19T05:28:32.4448632Z     },
2026-06-19T05:28:32.4448731Z     {
2026-06-19T05:28:32.4448876Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-19T05:28:32.4449938Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-19T05:28:32.4450071Z       "requiredStages": [
2026-06-19T05:28:32.4450197Z         "impl",
2026-06-19T05:28:32.4450300Z         "unit"
2026-06-19T05:28:32.4450404Z       ],
2026-06-19T05:28:32.4450509Z       "stages": {
2026-06-19T05:28:32.4450617Z         "doc": {
2026-06-19T05:28:32.4450726Z           "complete": false,
2026-06-19T05:28:32.4454394Z           "evidence": []
2026-06-19T05:28:32.4454542Z         },
2026-06-19T05:28:32.4454657Z         "impl": {
2026-06-19T05:28:32.4454776Z           "complete": true,
2026-06-19T05:28:32.4454890Z           "evidence": [
2026-06-19T05:28:32.4455001Z             {
2026-06-19T05:28:32.4455152Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4455311Z               "line": 192
2026-06-19T05:28:32.4455419Z             },
2026-06-19T05:28:32.4455515Z             {
2026-06-19T05:28:32.4455659Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4455771Z               "line": 279
2026-06-19T05:28:32.4455881Z             }
2026-06-19T05:28:32.4455986Z           ]
2026-06-19T05:28:32.4456098Z         },
2026-06-19T05:28:32.4456203Z         "int": {
2026-06-19T05:28:32.4456318Z           "complete": false,
2026-06-19T05:28:32.4456571Z           "evidence": []
2026-06-19T05:28:32.4456676Z         },
2026-06-19T05:28:32.4456789Z         "unit": {
2026-06-19T05:28:32.4456910Z           "complete": true,
2026-06-19T05:28:32.4457023Z           "evidence": [
2026-06-19T05:28:32.4457132Z             {
2026-06-19T05:28:32.4457281Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4457399Z               "line": 470
2026-06-19T05:28:32.4457505Z             },
2026-06-19T05:28:32.4457619Z             {
2026-06-19T05:28:32.4457757Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.4457878Z               "line": 526
2026-06-19T05:28:32.4457991Z             }
2026-06-19T05:28:32.4458091Z           ]
2026-06-19T05:28:32.4458202Z         }
2026-06-19T05:28:32.4458300Z       }
2026-06-19T05:28:32.4458406Z     },
2026-06-19T05:28:32.4458503Z     {
2026-06-19T05:28:32.4458658Z       "id": "REQ-HAZARD-TEMPLATE-ARGV-FILL",
2026-06-19T05:28:32.4462660Z       "title": "Command-template substitution fills argv ELEMENTS, not a re-tokenized string: spt-core currently `fill_template`s {key} values INTO the command STRING and THEN `tokenize`s the filled string (runtime.rs:94/122), so a multi-word {key} value whitespace-SPLITS into multiple argv tokens unless the adapter hand-quotes the placeholder, and a value containing a `\"` (or `;`) injects/breaks tokenization (shell-injection-adjacent). A filled value MUST become exactly ONE argv element regardless of spaces/quotes in the value. Fix: tokenize the TEMPLATE into argv FIRST, then `fill_template` EACH token, so a `{key}` slot resolves to a single element and the value never participates in tokenization (no whitespace-split, no quote/semicolon injection); preserve the missing-key / empty-command errors and `{{`/`}}` non-interpretation. perri's F-009 (v0.8.1 dogfood, argv-capture-confirmed): a multi-word `{psyche_prompt}` = \"PSYCHE REVIVAL time: epoch-ms:… incoming event: (none)\" arrived as argv[6..12] (7 stray tokens), the harness runner strict-parsed `--prompt` against the 2nd word, exited 2 within ~1s → phantom hosted perch. Applies to EVERY [session.<role>] template (psyche_init, extractor, notif, …); digest survives today only because its fills ({session_id}/{source}) are single-token.",
2026-06-19T05:28:32.4463051Z       "requiredStages": [
2026-06-19T05:28:32.4463160Z         "impl",
2026-06-19T05:28:32.4463257Z         "unit",
2026-06-19T05:28:32.4463361Z         "int"
2026-06-19T05:28:32.4463470Z       ],
2026-06-19T05:28:32.4463600Z       "stages": {
2026-06-19T05:28:32.4463709Z         "doc": {
2026-06-19T05:28:32.4463826Z           "complete": false,
2026-06-19T05:28:32.4463936Z           "evidence": []
2026-06-19T05:28:32.4464044Z         },
2026-06-19T05:28:32.4464153Z         "impl": {
2026-06-19T05:28:32.4464273Z           "complete": true,
2026-06-19T05:28:32.4464392Z           "evidence": [
2026-06-19T05:28:32.4464510Z             {
2026-06-19T05:28:32.4464688Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:28:32.4464792Z               "line": 95
2026-06-19T05:28:32.4464903Z             },
2026-06-19T05:28:32.4465008Z             {
2026-06-19T05:28:32.4465159Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.4465275Z               "line": 132
2026-06-19T05:28:32.4465369Z             },
2026-06-19T05:28:32.4465479Z             {
2026-06-19T05:28:32.4465631Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.4465751Z               "line": 434
2026-06-19T05:28:32.4465866Z             },
2026-06-19T05:28:32.4465974Z             {
2026-06-19T05:28:32.4466138Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4466252Z               "line": 139
2026-06-19T05:28:32.4466370Z             },
2026-06-19T05:28:32.4466474Z             {
2026-06-19T05:28:32.4466629Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4466743Z               "line": 326
2026-06-19T05:28:32.4466854Z             },
2026-06-19T05:28:32.4466968Z             {
2026-06-19T05:28:32.4467116Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4467241Z               "line": 555
2026-06-19T05:28:32.4467330Z             }
2026-06-19T05:28:32.4467441Z           ]
2026-06-19T05:28:32.4467545Z         },
2026-06-19T05:28:32.4467654Z         "int": {
2026-06-19T05:28:32.4467770Z           "complete": true,
2026-06-19T05:28:32.4467888Z           "evidence": [
2026-06-19T05:28:32.4467984Z             {
2026-06-19T05:28:32.4468160Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-19T05:28:32.4468284Z               "line": 32
2026-06-19T05:28:32.4468390Z             }
2026-06-19T05:28:32.4468484Z           ]
2026-06-19T05:28:32.4468594Z         },
2026-06-19T05:28:32.4468705Z         "unit": {
2026-06-19T05:28:32.4468827Z           "complete": true,
2026-06-19T05:28:32.4469034Z           "evidence": [
2026-06-19T05:28:32.4469133Z             {
2026-06-19T05:28:32.4469279Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4469399Z               "line": 625
2026-06-19T05:28:32.4469508Z             },
2026-06-19T05:28:32.4469608Z             {
2026-06-19T05:28:32.4469757Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4469866Z               "line": 646
2026-06-19T05:28:32.4469967Z             },
2026-06-19T05:28:32.4470076Z             {
2026-06-19T05:28:32.4470224Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4470448Z               "line": 662
2026-06-19T05:28:32.4470552Z             },
2026-06-19T05:28:32.4470668Z             {
2026-06-19T05:28:32.4470815Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4470935Z               "line": 680
2026-06-19T05:28:32.4471044Z             },
2026-06-19T05:28:32.4471144Z             {
2026-06-19T05:28:32.4471401Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4471505Z               "line": 704
2026-06-19T05:28:32.4471611Z             }
2026-06-19T05:28:32.4471714Z           ]
2026-06-19T05:28:32.4471822Z         }
2026-06-19T05:28:32.4471928Z       }
2026-06-19T05:28:32.4472033Z     },
2026-06-19T05:28:32.4472141Z     {
2026-06-19T05:28:32.4472281Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-19T05:28:32.4472475Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-19T05:28:32.4472600Z       "requiredStages": [
2026-06-19T05:28:32.4472705Z         "impl",
2026-06-19T05:28:32.4472814Z         "unit"
2026-06-19T05:28:32.4472915Z       ],
2026-06-19T05:28:32.4473029Z       "stages": {
2026-06-19T05:28:32.4473134Z         "doc": {
2026-06-19T05:28:32.4473263Z           "complete": false,
2026-06-19T05:28:32.4473372Z           "evidence": []
2026-06-19T05:28:32.4473477Z         },
2026-06-19T05:28:32.4473583Z         "impl": {
2026-06-19T05:28:32.4473706Z           "complete": true,
2026-06-19T05:28:32.4473807Z           "evidence": [
2026-06-19T05:28:32.4473912Z             {
2026-06-19T05:28:32.4474063Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:28:32.4474174Z               "line": 35
2026-06-19T05:28:32.4474283Z             }
2026-06-19T05:28:32.4474391Z           ]
2026-06-19T05:28:32.4474496Z         },
2026-06-19T05:28:32.4474600Z         "int": {
2026-06-19T05:28:32.4474718Z           "complete": false,
2026-06-19T05:28:32.4474843Z           "evidence": []
2026-06-19T05:28:32.4474947Z         },
2026-06-19T05:28:32.4475061Z         "unit": {
2026-06-19T05:28:32.4475191Z           "complete": true,
2026-06-19T05:28:32.4475300Z           "evidence": [
2026-06-19T05:28:32.4475405Z             {
2026-06-19T05:28:32.4475548Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-19T05:28:32.4475676Z               "line": 220
2026-06-19T05:28:32.4475777Z             }
2026-06-19T05:28:32.4475886Z           ]
2026-06-19T05:28:32.4476001Z         }
2026-06-19T05:28:32.4476102Z       }
2026-06-19T05:28:32.4476210Z     },
2026-06-19T05:28:32.4476316Z     {
2026-06-19T05:28:32.4476460Z       "id": "REQ-HAZARD-UNHOST-PSYCHE-REAP",
2026-06-19T05:28:32.4479679Z       "title": "On un-host, the detached `{id}-psyche` HARNESS PROCESS is reaped — not just its in-brain pulse-driver thread. Today stop_host (livehost.rs:203) trips the HostedLife stop flag + JOINS the driver thread, but the Psyche is a detached harness process (spawn_psyche → ManifestRuntime detached spawn, runtime.rs:341-356; its pid is untracked in HostedLife though stamped on the `{id}-psyche` perch, where residency-confirm already reads it). So endpoint-stop / mid-life agent-death / a B2/B5 offline-then-unhost leaves the psyche process ORPHANED, alive until the next daemon-stop (where Breap's job/group reaps the whole brain subtree). The Psyche STAYS a harness process by design (CONTEXT.md 97/203/251 — headless harness session, its own perch) — the fix does NOT move it in-brain; it SCOPED-kills the `{id}-psyche` pid on un-host (never machine-wide — shared box). Track the pid in HostedLife at host_one (cleanest) or read the `{id}-psyche` perch pid at stop_host. Composes with H3 (endpoint stop → offline → reconcile un-host → reap) and B2/B5 (the offline arms that trigger un-host). (v0.12.0)",
2026-06-19T05:28:32.4479868Z       "requiredStages": [
2026-06-19T05:28:32.4479969Z         "impl",
2026-06-19T05:28:32.4480064Z         "unit",
2026-06-19T05:28:32.4480173Z         "int"
2026-06-19T05:28:32.4480275Z       ],
2026-06-19T05:28:32.4480383Z       "stages": {
2026-06-19T05:28:32.4480492Z         "doc": {
2026-06-19T05:28:32.4480880Z           "complete": false,
2026-06-19T05:28:32.4480994Z           "evidence": []
2026-06-19T05:28:32.4481103Z         },
2026-06-19T05:28:32.4481205Z         "impl": {
2026-06-19T05:28:32.4481327Z           "complete": true,
2026-06-19T05:28:32.4481428Z           "evidence": [
2026-06-19T05:28:32.4481534Z             {
2026-06-19T05:28:32.4481800Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4481919Z               "line": 202
2026-06-19T05:28:32.4482032Z             },
2026-06-19T05:28:32.4482132Z             {
2026-06-19T05:28:32.4482283Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:28:32.4482391Z               "line": 107
2026-06-19T05:28:32.4482502Z             },
2026-06-19T05:28:32.4482593Z             {
2026-06-19T05:28:32.4482735Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:28:32.4482855Z               "line": 138
2026-06-19T05:28:32.4482955Z             },
2026-06-19T05:28:32.4483069Z             {
2026-06-19T05:28:32.4483227Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4483345Z               "line": 209
2026-06-19T05:28:32.4483452Z             },
2026-06-19T05:28:32.4483556Z             {
2026-06-19T05:28:32.4483713Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4483814Z               "line": 246
2026-06-19T05:28:32.4483927Z             },
2026-06-19T05:28:32.4484033Z             {
2026-06-19T05:28:32.4484180Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4484290Z               "line": 379
2026-06-19T05:28:32.4484396Z             }
2026-06-19T05:28:32.4484495Z           ]
2026-06-19T05:28:32.4484595Z         },
2026-06-19T05:28:32.4484696Z         "int": {
2026-06-19T05:28:32.4484810Z           "complete": true,
2026-06-19T05:28:32.4484928Z           "evidence": [
2026-06-19T05:28:32.4485033Z             {
2026-06-19T05:28:32.4485207Z               "path": "crates/spt/tests/unhost_psyche_reap_e2e.rs",
2026-06-19T05:28:32.4485331Z               "line": 17
2026-06-19T05:28:32.4485437Z             }
2026-06-19T05:28:32.4485541Z           ]
2026-06-19T05:28:32.4485640Z         },
2026-06-19T05:28:32.4485756Z         "unit": {
2026-06-19T05:28:32.4485874Z           "complete": true,
2026-06-19T05:28:32.4485985Z           "evidence": [
2026-06-19T05:28:32.4486090Z             {
2026-06-19T05:28:32.4486246Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4486366Z               "line": 923
2026-06-19T05:28:32.4486471Z             }
2026-06-19T05:28:32.4486575Z           ]
2026-06-19T05:28:32.4486686Z         }
2026-06-19T05:28:32.4486785Z       }
2026-06-19T05:28:32.4486895Z     },
2026-06-19T05:28:32.4487001Z     {
2026-06-19T05:28:32.4487143Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-19T05:28:32.4487438Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-19T05:28:32.4487556Z       "requiredStages": [
2026-06-19T05:28:32.4487666Z         "impl",
2026-06-19T05:28:32.4487773Z         "unit"
2026-06-19T05:28:32.4487878Z       ],
2026-06-19T05:28:32.4487989Z       "stages": {
2026-06-19T05:28:32.4488098Z         "doc": {
2026-06-19T05:28:32.4488217Z           "complete": false,
2026-06-19T05:28:32.4488327Z           "evidence": []
2026-06-19T05:28:32.4488431Z         },
2026-06-19T05:28:32.4488547Z         "impl": {
2026-06-19T05:28:32.4488675Z           "complete": true,
2026-06-19T05:28:32.4488784Z           "evidence": [
2026-06-19T05:28:32.4488900Z             {
2026-06-19T05:28:32.4489137Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.4489267Z               "line": 405
2026-06-19T05:28:32.4489371Z             },
2026-06-19T05:28:32.4489476Z             {
2026-06-19T05:28:32.4489638Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.4489743Z               "line": 409
2026-06-19T05:28:32.4489854Z             },
2026-06-19T05:28:32.4490067Z             {
2026-06-19T05:28:32.4490226Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.4490333Z               "line": 156
2026-06-19T05:28:32.4490433Z             }
2026-06-19T05:28:32.4490539Z           ]
2026-06-19T05:28:32.4490643Z         },
2026-06-19T05:28:32.4490747Z         "int": {
2026-06-19T05:28:32.4490858Z           "complete": false,
2026-06-19T05:28:32.4491062Z           "evidence": []
2026-06-19T05:28:32.4491164Z         },
2026-06-19T05:28:32.4491259Z         "unit": {
2026-06-19T05:28:32.4491411Z           "complete": true,
2026-06-19T05:28:32.4491521Z           "evidence": [
2026-06-19T05:28:32.4491634Z             {
2026-06-19T05:28:32.4491789Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.4491902Z               "line": 865
2026-06-19T05:28:32.4492007Z             },
2026-06-19T05:28:32.4492113Z             {
2026-06-19T05:28:32.4492264Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.4492380Z               "line": 879
2026-06-19T05:28:32.4492489Z             },
2026-06-19T05:28:32.4492593Z             {
2026-06-19T05:28:32.4492731Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.4492857Z               "line": 898
2026-06-19T05:28:32.4492952Z             },
2026-06-19T05:28:32.4493058Z             {
2026-06-19T05:28:32.4493195Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.4493324Z               "line": 915
2026-06-19T05:28:32.4493425Z             },
2026-06-19T05:28:32.4493534Z             {
2026-06-19T05:28:32.4493693Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:28:32.4493802Z               "line": 441
2026-06-19T05:28:32.4493901Z             }
2026-06-19T05:28:32.4494007Z           ]
2026-06-19T05:28:32.4494111Z         }
2026-06-19T05:28:32.4494211Z       }
2026-06-19T05:28:32.4494317Z     },
2026-06-19T05:28:32.4494416Z     {
2026-06-19T05:28:32.4494559Z       "id": "REQ-HAZARD-VIEWER-CLOSE-DETACH",
2026-06-19T05:28:32.4504395Z       "title": "A VIEW is independent from the endpoint: closing the tab/window where `spt endpoint run` was invoked must detach ONLY the `spt rc` attach pump — the daemon-hosted harness keeps running and stays re-attachable via `spt rc <id>`. ROOT (Windows, v0.12.0 real-harness defect): the daemon never breaks away from the launching terminal's Job Object. Windows Terminal / VS Code place the launched shell AND every descendant into a Job Object with JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; closing the tab drops the terminal's last job handle → the OS terminates every process still in that job. A child escapes only with CREATE_BREAKAWAY_FROM_JOB — used NOWHERE in the tree. Both daemon spawn paths (daemon.rs:707 detached_no_inherit = DETACHED_PROCESS|CREATE_NEW_PROCESS_GROUP|CREATE_NO_WINDOW; deelevate.rs:519 elevated = CREATE_NEW_CONSOLE|...) drop the CONSOLE but NOT job membership, so the daemon's freshly broker-spawned ConPTY harness subtree is reaped on tab-close. The ConPTY/pseudoconsole isolation itself is CORRECT (portable-pty builds the pseudoconsole in the daemon; no console signal / handle leak) — the leaking lifetime binding is the Job Object, not the console. FIX: add CREATE_BREAKAWAY_FROM_JOB to both daemon spawn paths AND pin each broker-spawned harness into a DAEMON-OWNED Job Object (mirror reap.rs/Breap) as backstop (survives even where a terminal sets SILENT_BREAKAWAY_OK=false). Unix: the daemon's own session detachment (new session, no controlling terminal) already keeps a closing terminal's SIGHUP off its children — verify, add a guard test, no code expected. FIX UPDATE (v0.12.1 L1.5, doyle re-scope operator-approved 2026-06-18): job-neutral daemon launch is now PRIMARY, breakaway DEMOTED to a fallback rung. ROOT reframed — the daemon INHERITS the terminal's Job because spawn_detached runs FROM the terminal-child CLI (DETACHED_PROCESS detaches the console, not the job); breakaway tried to claw back out but a job CAN deny it (the L1 finding). FIX: launch the cold-started daemon via a job-NEUTRAL creator so it is WmiPrvSE/Task-Scheduler-owned, OUTSIDE any terminal job from birth (why Task-Scheduler-autostarted daemons never had this bug). Launcher ladder (first-success-wins, daemon.rs spawn_detached → BOTH cold-start AND `spt daemon start`): (1) WMI Win32_Process.Create via ABSOLUTE powershell -EncodedCommand (KH 5.12 abs path; base64-UTF16LE dodges all quoting; success requires BOTH ReturnValue==0 AND a parsed ProcessId, else fall-through — never a silent launched), forwarding SPT_* env via a `cmd /c set … & start /b` wrapper because a WMI/scheduler child does NOT inherit transient shell env (verified — SPT_HOME would be lost, wrong universe); (2) schtasks one-shot (same env wrapper; best-effort fallback); (3) CREATE_BREAKAWAY_FROM_JOB (the L1 code, reordered below); (4) in-job last resort (logs DETACH_IN_JOB + tab-close caveat). detached_no_inherit (breakaway-then-in-job) is UNCHANGED for its other caller shellhost::launch_shell (a daemon-spawned shell is already job-neutral once the daemon is). The elevated deelevate path keeps its L1 breakaway for now (elevated-case WMI-reparent = FOLLOW-UP). (v0.12.1)",
2026-06-19T05:28:32.4504891Z       "requiredStages": [
2026-06-19T05:28:32.4504995Z         "doc",
2026-06-19T05:28:32.4505110Z         "impl",
2026-06-19T05:28:32.4505216Z         "unit",
2026-06-19T05:28:32.4505324Z         "int"
2026-06-19T05:28:32.4505439Z       ],
2026-06-19T05:28:32.4505550Z       "stages": {
2026-06-19T05:28:32.4505667Z         "doc": {
2026-06-19T05:28:32.4505778Z           "complete": true,
2026-06-19T05:28:32.4505884Z           "evidence": [
2026-06-19T05:28:32.4505987Z             {
2026-06-19T05:28:32.4506115Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4506224Z               "line": 417
2026-06-19T05:28:32.4506337Z             },
2026-06-19T05:28:32.4506451Z             {
2026-06-19T05:28:32.4506590Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4506708Z               "line": 402
2026-06-19T05:28:32.4506819Z             }
2026-06-19T05:28:32.4506919Z           ]
2026-06-19T05:28:32.4507018Z         },
2026-06-19T05:28:32.4507125Z         "impl": {
2026-06-19T05:28:32.4507248Z           "complete": true,
2026-06-19T05:28:32.4507352Z           "evidence": [
2026-06-19T05:28:32.4507468Z             {
2026-06-19T05:28:32.4507619Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4507749Z               "line": 779
2026-06-19T05:28:32.4507848Z             },
2026-06-19T05:28:32.4507953Z             {
2026-06-19T05:28:32.4508102Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4508215Z               "line": 804
2026-06-19T05:28:32.4508325Z             },
2026-06-19T05:28:32.4508431Z             {
2026-06-19T05:28:32.4508582Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4508691Z               "line": 821
2026-06-19T05:28:32.4508805Z             },
2026-06-19T05:28:32.4508913Z             {
2026-06-19T05:28:32.4509148Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4509265Z               "line": 836
2026-06-19T05:28:32.4509352Z             },
2026-06-19T05:28:32.4509452Z             {
2026-06-19T05:28:32.4509594Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4509705Z               "line": 856
2026-06-19T05:28:32.4509814Z             },
2026-06-19T05:28:32.4509918Z             {
2026-06-19T05:28:32.4510067Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4510172Z               "line": 907
2026-06-19T05:28:32.4510272Z             },
2026-06-19T05:28:32.4510382Z             {
2026-06-19T05:28:32.4510525Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4510654Z               "line": 936
2026-06-19T05:28:32.4510758Z             },
2026-06-19T05:28:32.4510868Z             {
2026-06-19T05:28:32.4511003Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4511115Z               "line": 1000
2026-06-19T05:28:32.4511369Z             },
2026-06-19T05:28:32.4511467Z             {
2026-06-19T05:28:32.4511620Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4511735Z               "line": 527
2026-06-19T05:28:32.4511844Z             }
2026-06-19T05:28:32.4511930Z           ]
2026-06-19T05:28:32.4512041Z         },
2026-06-19T05:28:32.4512154Z         "int": {
2026-06-19T05:28:32.4512365Z           "complete": true,
2026-06-19T05:28:32.4512483Z           "evidence": [
2026-06-19T05:28:32.4512584Z             {
2026-06-19T05:28:32.4512750Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-19T05:28:32.4512856Z               "line": 35
2026-06-19T05:28:32.4512966Z             },
2026-06-19T05:28:32.4513074Z             {
2026-06-19T05:28:32.4513223Z               "path": "crates/spt/tests/job_escape_e2e.rs",
2026-06-19T05:28:32.4513327Z               "line": 313
2026-06-19T05:28:32.4513432Z             }
2026-06-19T05:28:32.4513538Z           ]
2026-06-19T05:28:32.4513651Z         },
2026-06-19T05:28:32.4513760Z         "unit": {
2026-06-19T05:28:32.4513884Z           "complete": true,
2026-06-19T05:28:32.4513987Z           "evidence": [
2026-06-19T05:28:32.4514091Z             {
2026-06-19T05:28:32.4514230Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4514358Z               "line": 1127
2026-06-19T05:28:32.4514454Z             },
2026-06-19T05:28:32.4514569Z             {
2026-06-19T05:28:32.4514716Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4514832Z               "line": 1145
2026-06-19T05:28:32.4514936Z             },
2026-06-19T05:28:32.4515035Z             {
2026-06-19T05:28:32.4515184Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4515298Z               "line": 1159
2026-06-19T05:28:32.4515408Z             },
2026-06-19T05:28:32.4515508Z             {
2026-06-19T05:28:32.4515655Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4515776Z               "line": 1177
2026-06-19T05:28:32.4515879Z             },
2026-06-19T05:28:32.4515984Z             {
2026-06-19T05:28:32.4516138Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4516247Z               "line": 1201
2026-06-19T05:28:32.4516353Z             },
2026-06-19T05:28:32.4516458Z             {
2026-06-19T05:28:32.4516604Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4516727Z               "line": 1428
2026-06-19T05:28:32.4516835Z             }
2026-06-19T05:28:32.4516940Z           ]
2026-06-19T05:28:32.4517045Z         }
2026-06-19T05:28:32.4517160Z       }
2026-06-19T05:28:32.4517259Z     },
2026-06-19T05:28:32.4517365Z     {
2026-06-19T05:28:32.4517502Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-19T05:28:32.4519769Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-19T05:28:32.4519907Z       "requiredStages": [
2026-06-19T05:28:32.4520017Z         "unit",
2026-06-19T05:28:32.4520126Z         "int"
2026-06-19T05:28:32.4520237Z       ],
2026-06-19T05:28:32.4520341Z       "stages": {
2026-06-19T05:28:32.4520450Z         "doc": {
2026-06-19T05:28:32.4520566Z           "complete": true,
2026-06-19T05:28:32.4520689Z           "evidence": [
2026-06-19T05:28:32.4520793Z             {
2026-06-19T05:28:32.4520937Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4521181Z               "line": 381
2026-06-19T05:28:32.4521285Z             }
2026-06-19T05:28:32.4521395Z           ]
2026-06-19T05:28:32.4521501Z         },
2026-06-19T05:28:32.4521614Z         "impl": {
2026-06-19T05:28:32.4521724Z           "complete": true,
2026-06-19T05:28:32.4521835Z           "evidence": [
2026-06-19T05:28:32.4521943Z             {
2026-06-19T05:28:32.4522190Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.4522305Z               "line": 98
2026-06-19T05:28:32.4522399Z             }
2026-06-19T05:28:32.4522510Z           ]
2026-06-19T05:28:32.4522606Z         },
2026-06-19T05:28:32.4522714Z         "int": {
2026-06-19T05:28:32.4522834Z           "complete": true,
2026-06-19T05:28:32.4522944Z           "evidence": [
2026-06-19T05:28:32.4523053Z             {
2026-06-19T05:28:32.4523201Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.4523315Z               "line": 1039
2026-06-19T05:28:32.4523416Z             }
2026-06-19T05:28:32.4523535Z           ]
2026-06-19T05:28:32.4523635Z         },
2026-06-19T05:28:32.4523731Z         "unit": {
2026-06-19T05:28:32.4523855Z           "complete": true,
2026-06-19T05:28:32.4523964Z           "evidence": [
2026-06-19T05:28:32.4524075Z             {
2026-06-19T05:28:32.4524216Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.4524334Z               "line": 1534
2026-06-19T05:28:32.4524444Z             }
2026-06-19T05:28:32.4524547Z           ]
2026-06-19T05:28:32.4524656Z         }
2026-06-19T05:28:32.4524757Z       }
2026-06-19T05:28:32.4524852Z     },
2026-06-19T05:28:32.4524957Z     {
2026-06-19T05:28:32.4525096Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-19T05:28:32.4525925Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-19T05:28:32.4526059Z       "requiredStages": [
2026-06-19T05:28:32.4526164Z         "doc",
2026-06-19T05:28:32.4526268Z         "impl",
2026-06-19T05:28:32.4526374Z         "unit"
2026-06-19T05:28:32.4526468Z       ],
2026-06-19T05:28:32.4526583Z       "stages": {
2026-06-19T05:28:32.4526699Z         "doc": {
2026-06-19T05:28:32.4526817Z           "complete": true,
2026-06-19T05:28:32.4526947Z           "evidence": [
2026-06-19T05:28:32.4527051Z             {
2026-06-19T05:28:32.4527197Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4527311Z               "line": 366
2026-06-19T05:28:32.4527424Z             }
2026-06-19T05:28:32.4527533Z           ]
2026-06-19T05:28:32.4527629Z         },
2026-06-19T05:28:32.4527743Z         "impl": {
2026-06-19T05:28:32.4527857Z           "complete": true,
2026-06-19T05:28:32.4527973Z           "evidence": [
2026-06-19T05:28:32.4528063Z             {
2026-06-19T05:28:32.4528216Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:28:32.4528334Z               "line": 87
2026-06-19T05:28:32.4528434Z             },
2026-06-19T05:28:32.4528545Z             {
2026-06-19T05:28:32.4528692Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:28:32.4528806Z               "line": 105
2026-06-19T05:28:32.4528898Z             },
2026-06-19T05:28:32.4529073Z             {
2026-06-19T05:28:32.4529237Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.4529340Z               "line": 55
2026-06-19T05:28:32.4529450Z             },
2026-06-19T05:28:32.4529552Z             {
2026-06-19T05:28:32.4529712Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.4529821Z               "line": 31
2026-06-19T05:28:32.4529920Z             },
2026-06-19T05:28:32.4530024Z             {
2026-06-19T05:28:32.4530172Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.4530277Z               "line": 446
2026-06-19T05:28:32.4530386Z             },
2026-06-19T05:28:32.4530606Z             {
2026-06-19T05:28:32.4530768Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.4530873Z               "line": 95
2026-06-19T05:28:32.4530977Z             },
2026-06-19T05:28:32.4531073Z             {
2026-06-19T05:28:32.4531230Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.4531436Z               "line": 29
2026-06-19T05:28:32.4531549Z             },
2026-06-19T05:28:32.4531654Z             {
2026-06-19T05:28:32.4531808Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.4531931Z               "line": 104
2026-06-19T05:28:32.4532032Z             },
2026-06-19T05:28:32.4532141Z             {
2026-06-19T05:28:32.4532303Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4532419Z               "line": 208
2026-06-19T05:28:32.4532522Z             },
2026-06-19T05:28:32.4532621Z             {
2026-06-19T05:28:32.4532780Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-19T05:28:32.4532898Z               "line": 28
2026-06-19T05:28:32.4533007Z             },
2026-06-19T05:28:32.4533113Z             {
2026-06-19T05:28:32.4533260Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-19T05:28:32.4533371Z               "line": 74
2026-06-19T05:28:32.4533475Z             },
2026-06-19T05:28:32.4533579Z             {
2026-06-19T05:28:32.4533747Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:28:32.4533856Z               "line": 32
2026-06-19T05:28:32.4533957Z             },
2026-06-19T05:28:32.4534067Z             {
2026-06-19T05:28:32.4534214Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.4534320Z               "line": 40
2026-06-19T05:28:32.4534429Z             },
2026-06-19T05:28:32.4534533Z             {
2026-06-19T05:28:32.4534682Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.4534795Z               "line": 184
2026-06-19T05:28:32.4534904Z             },
2026-06-19T05:28:32.4535004Z             {
2026-06-19T05:28:32.4535140Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:28:32.4535255Z               "line": 61
2026-06-19T05:28:32.4535360Z             },
2026-06-19T05:28:32.4535464Z             {
2026-06-19T05:28:32.4535608Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:28:32.4535727Z               "line": 131
2026-06-19T05:28:32.4535831Z             },
2026-06-19T05:28:32.4535933Z             {
2026-06-19T05:28:32.4536075Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:28:32.4536185Z               "line": 223
2026-06-19T05:28:32.4536295Z             },
2026-06-19T05:28:32.4536399Z             {
2026-06-19T05:28:32.4536538Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-19T05:28:32.4536652Z               "line": 37
2026-06-19T05:28:32.4536752Z             },
2026-06-19T05:28:32.4536858Z             {
2026-06-19T05:28:32.4537009Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:28:32.4537129Z               "line": 38
2026-06-19T05:28:32.4537239Z             },
2026-06-19T05:28:32.4537347Z             {
2026-06-19T05:28:32.4537497Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:28:32.4537611Z               "line": 36
2026-06-19T05:28:32.4537724Z             },
2026-06-19T05:28:32.4537829Z             {
2026-06-19T05:28:32.4537979Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-19T05:28:32.4538098Z               "line": 40
2026-06-19T05:28:32.4538199Z             }
2026-06-19T05:28:32.4538299Z           ]
2026-06-19T05:28:32.4538408Z         },
2026-06-19T05:28:32.4538519Z         "int": {
2026-06-19T05:28:32.4538637Z           "complete": false,
2026-06-19T05:28:32.4538751Z           "evidence": []
2026-06-19T05:28:32.4538857Z         },
2026-06-19T05:28:32.4539027Z         "unit": {
2026-06-19T05:28:32.4539153Z           "complete": true,
2026-06-19T05:28:32.4539262Z           "evidence": [
2026-06-19T05:28:32.4539473Z             {
2026-06-19T05:28:32.4539628Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.4539740Z               "line": 212
2026-06-19T05:28:32.4539844Z             },
2026-06-19T05:28:32.4539948Z             {
2026-06-19T05:28:32.4540107Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-19T05:28:32.4540210Z               "line": 136
2026-06-19T05:28:32.4540419Z             },
2026-06-19T05:28:32.4540522Z             {
2026-06-19T05:28:32.4540684Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:28:32.4540799Z               "line": 685
2026-06-19T05:28:32.4540903Z             },
2026-06-19T05:28:32.4541013Z             {
2026-06-19T05:28:32.4541162Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:28:32.4541275Z               "line": 224
2026-06-19T05:28:32.4541376Z             },
2026-06-19T05:28:32.4541486Z             {
2026-06-19T05:28:32.4541648Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-19T05:28:32.4541757Z               "line": 206
2026-06-19T05:28:32.4541866Z             },
2026-06-19T05:28:32.4541967Z             {
2026-06-19T05:28:32.4542109Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:28:32.4542214Z               "line": 112
2026-06-19T05:28:32.4542325Z             },
2026-06-19T05:28:32.4542434Z             {
2026-06-19T05:28:32.4542582Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-19T05:28:32.4542697Z               "line": 157
2026-06-19T05:28:32.4542801Z             },
2026-06-19T05:28:32.4542907Z             {
2026-06-19T05:28:32.4543049Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:28:32.4543158Z               "line": 215
2026-06-19T05:28:32.4543267Z             },
2026-06-19T05:28:32.4543369Z             {
2026-06-19T05:28:32.4543519Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:28:32.4543630Z               "line": 141
2026-06-19T05:28:32.4543744Z             },
2026-06-19T05:28:32.4543848Z             {
2026-06-19T05:28:32.4543997Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-19T05:28:32.4544106Z               "line": 162
2026-06-19T05:28:32.4544212Z             }
2026-06-19T05:28:32.4544321Z           ]
2026-06-19T05:28:32.4544416Z         }
2026-06-19T05:28:32.4544522Z       }
2026-06-19T05:28:32.4544617Z     },
2026-06-19T05:28:32.4544736Z     {
2026-06-19T05:28:32.4544937Z       "id": "REQ-HAZARD-WIN-PTY-PROGRAM-RESOLVE",
2026-06-19T05:28:32.4546808Z       "title": "Native-PTY spawn must resolve a bare program name with PATHEXT precedence and run a non-PE target through its interpreter: portable-pty's own `which` takes the FIRST PATH match — an extensionless shebang shim (e.g. a node CLI `ccs` shipped beside `ccs.cmd`) — and CreateProcessW then rejects the non-PE file with os error 193 ('not a valid Win32 application'); spt-term resolves the program itself (PATHEXT order prefers .EXE over .CMD; .cmd/.bat → cmd.exe /d /c, .ps1 → powershell -NoProfile -File) so a bare harness/shell [session.self] command actually launches on Windows. Unix is a passthrough (execve honours the shebang).",
2026-06-19T05:28:32.4546964Z       "requiredStages": [
2026-06-19T05:28:32.4547069Z         "doc",
2026-06-19T05:28:32.4547175Z         "impl",
2026-06-19T05:28:32.4547284Z         "unit",
2026-06-19T05:28:32.4547384Z         "int"
2026-06-19T05:28:32.4547499Z       ],
2026-06-19T05:28:32.4547603Z       "stages": {
2026-06-19T05:28:32.4547718Z         "doc": {
2026-06-19T05:28:32.4547837Z           "complete": true,
2026-06-19T05:28:32.4547942Z           "evidence": [
2026-06-19T05:28:32.4548047Z             {
2026-06-19T05:28:32.4548185Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-19T05:28:32.4548303Z               "line": 250
2026-06-19T05:28:32.4548408Z             }
2026-06-19T05:28:32.4548516Z           ]
2026-06-19T05:28:32.4548620Z         },
2026-06-19T05:28:32.4548730Z         "impl": {
2026-06-19T05:28:32.4548850Z           "complete": true,
2026-06-19T05:28:32.4549188Z           "evidence": [
2026-06-19T05:28:32.4549297Z             {
2026-06-19T05:28:32.4549431Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:28:32.4549550Z               "line": 135
2026-06-19T05:28:32.4549660Z             },
2026-06-19T05:28:32.4549756Z             {
2026-06-19T05:28:32.4549898Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:28:32.4550108Z               "line": 157
2026-06-19T05:28:32.4550212Z             }
2026-06-19T05:28:32.4550305Z           ]
2026-06-19T05:28:32.4550418Z         },
2026-06-19T05:28:32.4550527Z         "int": {
2026-06-19T05:28:32.4550638Z           "complete": true,
2026-06-19T05:28:32.4550756Z           "evidence": [
2026-06-19T05:28:32.4550860Z             {
2026-06-19T05:28:32.4551022Z               "path": "crates/spt-term/tests/winspawn.rs",
2026-06-19T05:28:32.4551129Z               "line": 15
2026-06-19T05:28:32.4551239Z             }
2026-06-19T05:28:32.4551354Z           ]
2026-06-19T05:28:32.4551463Z         },
2026-06-19T05:28:32.4551573Z         "unit": {
2026-06-19T05:28:32.4551688Z           "complete": true,
2026-06-19T05:28:32.4551806Z           "evidence": [
2026-06-19T05:28:32.4551912Z             {
2026-06-19T05:28:32.4552069Z               "path": "crates/spt-term/src/winprog.rs",
2026-06-19T05:28:32.4552183Z               "line": 233
2026-06-19T05:28:32.4552289Z             }
2026-06-19T05:28:32.4552394Z           ]
2026-06-19T05:28:32.4552498Z         }
2026-06-19T05:28:32.4552609Z       }
2026-06-19T05:28:32.4552713Z     },
2026-06-19T05:28:32.4552817Z     {
2026-06-19T05:28:32.4552970Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-19T05:28:32.4553162Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-19T05:28:32.4553285Z       "requiredStages": [
2026-06-19T05:28:32.4553394Z         "impl",
2026-06-19T05:28:32.4553505Z         "unit"
2026-06-19T05:28:32.4553609Z       ],
2026-06-19T05:28:32.4553723Z       "stages": {
2026-06-19T05:28:32.4553832Z         "doc": {
2026-06-19T05:28:32.4553952Z           "complete": false,
2026-06-19T05:28:32.4554066Z           "evidence": []
2026-06-19T05:28:32.4554171Z         },
2026-06-19T05:28:32.4557998Z         "impl": {
2026-06-19T05:28:32.4558153Z           "complete": true,
2026-06-19T05:28:32.4558283Z           "evidence": [
2026-06-19T05:28:32.4558388Z             {
2026-06-19T05:28:32.4558549Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.4558670Z               "line": 95
2026-06-19T05:28:32.4558768Z             },
2026-06-19T05:28:32.4558877Z             {
2026-06-19T05:28:32.4559104Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.4559223Z               "line": 117
2026-06-19T05:28:32.4559329Z             }
2026-06-19T05:28:32.4559433Z           ]
2026-06-19T05:28:32.4559547Z         },
2026-06-19T05:28:32.4559653Z         "int": {
2026-06-19T05:28:32.4559781Z           "complete": false,
2026-06-19T05:28:32.4559906Z           "evidence": []
2026-06-19T05:28:32.4560011Z         },
2026-06-19T05:28:32.4560129Z         "unit": {
2026-06-19T05:28:32.4560244Z           "complete": true,
2026-06-19T05:28:32.4560392Z           "evidence": [
2026-06-19T05:28:32.4560501Z             {
2026-06-19T05:28:32.4560645Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.4560759Z               "line": 250
2026-06-19T05:28:32.4560870Z             },
2026-06-19T05:28:32.4560983Z             {
2026-06-19T05:28:32.4561126Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.4561241Z               "line": 412
2026-06-19T05:28:32.4561354Z             },
2026-06-19T05:28:32.4561463Z             {
2026-06-19T05:28:32.4561601Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.4561718Z               "line": 580
2026-06-19T05:28:32.4561824Z             },
2026-06-19T05:28:32.4561924Z             {
2026-06-19T05:28:32.4562071Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.4562177Z               "line": 638
2026-06-19T05:28:32.4562443Z             }
2026-06-19T05:28:32.4562553Z           ]
2026-06-19T05:28:32.4562653Z         }
2026-06-19T05:28:32.4562758Z       }
2026-06-19T05:28:32.4562859Z     },
2026-06-19T05:28:32.4562968Z     {
2026-06-19T05:28:32.4563107Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-19T05:28:32.4563325Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-19T05:28:32.4563554Z       "requiredStages": [
2026-06-19T05:28:32.4563664Z         "impl",
2026-06-19T05:28:32.4563765Z         "unit"
2026-06-19T05:28:32.4563869Z       ],
2026-06-19T05:28:32.4563983Z       "stages": {
2026-06-19T05:28:32.4564089Z         "doc": {
2026-06-19T05:28:32.4564212Z           "complete": false,
2026-06-19T05:28:32.4564320Z           "evidence": []
2026-06-19T05:28:32.4564421Z         },
2026-06-19T05:28:32.4564527Z         "impl": {
2026-06-19T05:28:32.4564645Z           "complete": true,
2026-06-19T05:28:32.4564756Z           "evidence": [
2026-06-19T05:28:32.4564860Z             {
2026-06-19T05:28:32.4565008Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4565108Z               "line": 262
2026-06-19T05:28:32.4565212Z             },
2026-06-19T05:28:32.4565318Z             {
2026-06-19T05:28:32.4565456Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4565579Z               "line": 307
2026-06-19T05:28:32.4565690Z             },
2026-06-19T05:28:32.4565799Z             {
2026-06-19T05:28:32.4565947Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4566057Z               "line": 319
2026-06-19T05:28:32.4566166Z             }
2026-06-19T05:28:32.4566271Z           ]
2026-06-19T05:28:32.4566382Z         },
2026-06-19T05:28:32.4566485Z         "int": {
2026-06-19T05:28:32.4566604Z           "complete": false,
2026-06-19T05:28:32.4566727Z           "evidence": []
2026-06-19T05:28:32.4566831Z         },
2026-06-19T05:28:32.4566945Z         "unit": {
2026-06-19T05:28:32.4567060Z           "complete": true,
2026-06-19T05:28:32.4567183Z           "evidence": [
2026-06-19T05:28:32.4567284Z             {
2026-06-19T05:28:32.4567431Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4567550Z               "line": 455
2026-06-19T05:28:32.4567651Z             },
2026-06-19T05:28:32.4567760Z             {
2026-06-19T05:28:32.4567899Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4568018Z               "line": 499
2026-06-19T05:28:32.4568122Z             }
2026-06-19T05:28:32.4568228Z           ]
2026-06-19T05:28:32.4568327Z         }
2026-06-19T05:28:32.4568432Z       }
2026-06-19T05:28:32.4568548Z     },
2026-06-19T05:28:32.4568638Z     {
2026-06-19T05:28:32.4568761Z       "id": "REQ-HOST-RUN-1",
2026-06-19T05:28:32.4571430Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-19T05:28:32.4571585Z       "requiredStages": [
2026-06-19T05:28:32.4571696Z         "impl",
2026-06-19T05:28:32.4571806Z         "unit",
2026-06-19T05:28:32.4571905Z         "int"
2026-06-19T05:28:32.4572018Z       ],
2026-06-19T05:28:32.4572123Z       "stages": {
2026-06-19T05:28:32.4572231Z         "doc": {
2026-06-19T05:28:32.4572335Z           "complete": false,
2026-06-19T05:28:32.4572451Z           "evidence": []
2026-06-19T05:28:32.4572560Z         },
2026-06-19T05:28:32.4572804Z         "impl": {
2026-06-19T05:28:32.4572926Z           "complete": true,
2026-06-19T05:28:32.4573028Z           "evidence": [
2026-06-19T05:28:32.4573137Z             {
2026-06-19T05:28:32.4573299Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:28:32.4573414Z               "line": 30
2026-06-19T05:28:32.4573514Z             },
2026-06-19T05:28:32.4573705Z             {
2026-06-19T05:28:32.4573867Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:28:32.4573972Z               "line": 69
2026-06-19T05:28:32.4574081Z             },
2026-06-19T05:28:32.4574186Z             {
2026-06-19T05:28:32.4574354Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:28:32.4574466Z               "line": 142
2026-06-19T05:28:32.4574568Z             },
2026-06-19T05:28:32.4574678Z             {
2026-06-19T05:28:32.4574809Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4574919Z               "line": 1257
2026-06-19T05:28:32.4575029Z             }
2026-06-19T05:28:32.4575133Z           ]
2026-06-19T05:28:32.4575233Z         },
2026-06-19T05:28:32.4575344Z         "int": {
2026-06-19T05:28:32.4575467Z           "complete": true,
2026-06-19T05:28:32.4575573Z           "evidence": [
2026-06-19T05:28:32.4575682Z             {
2026-06-19T05:28:32.4575834Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.4575945Z               "line": 284
2026-06-19T05:28:32.4576054Z             }
2026-06-19T05:28:32.4576159Z           ]
2026-06-19T05:28:32.4576270Z         },
2026-06-19T05:28:32.4576373Z         "unit": {
2026-06-19T05:28:32.4576497Z           "complete": true,
2026-06-19T05:28:32.4576604Z           "evidence": [
2026-06-19T05:28:32.4576711Z             {
2026-06-19T05:28:32.4576870Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:28:32.4576984Z               "line": 184
2026-06-19T05:28:32.4577093Z             },
2026-06-19T05:28:32.4577192Z             {
2026-06-19T05:28:32.4577357Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:28:32.4577476Z               "line": 225
2026-06-19T05:28:32.4577582Z             },
2026-06-19T05:28:32.4577691Z             {
2026-06-19T05:28:32.4577844Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:28:32.4577963Z               "line": 258
2026-06-19T05:28:32.4578081Z             }
2026-06-19T05:28:32.4578193Z           ]
2026-06-19T05:28:32.4578297Z         }
2026-06-19T05:28:32.4578406Z       }
2026-06-19T05:28:32.4578517Z     },
2026-06-19T05:28:32.4578616Z     {
2026-06-19T05:28:32.4578744Z       "id": "REQ-HOST-RUN-2",
2026-06-19T05:28:32.4580591Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-19T05:28:32.4580731Z       "requiredStages": [
2026-06-19T05:28:32.4580835Z         "impl",
2026-06-19T05:28:32.4580935Z         "unit",
2026-06-19T05:28:32.4581046Z         "int"
2026-06-19T05:28:32.4581150Z       ],
2026-06-19T05:28:32.4581259Z       "stages": {
2026-06-19T05:28:32.4581365Z         "doc": {
2026-06-19T05:28:32.4581483Z           "complete": false,
2026-06-19T05:28:32.4581602Z           "evidence": []
2026-06-19T05:28:32.4581703Z         },
2026-06-19T05:28:32.4581821Z         "impl": {
2026-06-19T05:28:32.4581946Z           "complete": true,
2026-06-19T05:28:32.4582046Z           "evidence": [
2026-06-19T05:28:32.4582150Z             {
2026-06-19T05:28:32.4582413Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-19T05:28:32.4582521Z               "line": 143
2026-06-19T05:28:32.4582626Z             },
2026-06-19T05:28:32.4582740Z             {
2026-06-19T05:28:32.4582881Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:28:32.4582996Z               "line": 113
2026-06-19T05:28:32.4583220Z             }
2026-06-19T05:28:32.4583331Z           ]
2026-06-19T05:28:32.4583435Z         },
2026-06-19T05:28:32.4583535Z         "int": {
2026-06-19T05:28:32.4583659Z           "complete": true,
2026-06-19T05:28:32.4583783Z           "evidence": [
2026-06-19T05:28:32.4583878Z             {
2026-06-19T05:28:32.4584036Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.4584135Z               "line": 570
2026-06-19T05:28:32.4584232Z             }
2026-06-19T05:28:32.4584327Z           ]
2026-06-19T05:28:32.4584436Z         },
2026-06-19T05:28:32.4584542Z         "unit": {
2026-06-19T05:28:32.4584670Z           "complete": true,
2026-06-19T05:28:32.4584779Z           "evidence": [
2026-06-19T05:28:32.4584881Z             {
2026-06-19T05:28:32.4585031Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-19T05:28:32.4585138Z               "line": 86
2026-06-19T05:28:32.4585238Z             }
2026-06-19T05:28:32.4585341Z           ]
2026-06-19T05:28:32.4585450Z         }
2026-06-19T05:28:32.4585551Z       }
2026-06-19T05:28:32.4585652Z     },
2026-06-19T05:28:32.4585755Z     {
2026-06-19T05:28:32.4585871Z       "id": "REQ-INFRA-1",
2026-06-19T05:28:32.4586089Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-19T05:28:32.4586205Z       "requiredStages": [],
2026-06-19T05:28:32.4586310Z       "stages": {
2026-06-19T05:28:32.4586423Z         "doc": {
2026-06-19T05:28:32.4586538Z           "complete": false,
2026-06-19T05:28:32.4586648Z           "evidence": []
2026-06-19T05:28:32.4586747Z         },
2026-06-19T05:28:32.4586853Z         "impl": {
2026-06-19T05:28:32.4586986Z           "complete": false,
2026-06-19T05:28:32.4587102Z           "evidence": []
2026-06-19T05:28:32.4587206Z         },
2026-06-19T05:28:32.4587310Z         "int": {
2026-06-19T05:28:32.4587431Z           "complete": false,
2026-06-19T05:28:32.4587539Z           "evidence": []
2026-06-19T05:28:32.4587648Z         },
2026-06-19T05:28:32.4587757Z         "unit": {
2026-06-19T05:28:32.4587871Z           "complete": false,
2026-06-19T05:28:32.4587975Z           "evidence": []
2026-06-19T05:28:32.4588079Z         }
2026-06-19T05:28:32.4588176Z       }
2026-06-19T05:28:32.4588279Z     },
2026-06-19T05:28:32.4588385Z     {
2026-06-19T05:28:32.4588504Z       "id": "REQ-INST-1",
2026-06-19T05:28:32.4588690Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-19T05:28:32.4588814Z       "requiredStages": [],
2026-06-19T05:28:32.4588923Z       "stages": {
2026-06-19T05:28:32.4589128Z         "doc": {
2026-06-19T05:28:32.4589237Z           "complete": false,
2026-06-19T05:28:32.4589353Z           "evidence": []
2026-06-19T05:28:32.4589452Z         },
2026-06-19T05:28:32.4589562Z         "impl": {
2026-06-19T05:28:32.4589683Z           "complete": false,
2026-06-19T05:28:32.4589796Z           "evidence": []
2026-06-19T05:28:32.4589905Z         },
2026-06-19T05:28:32.4590012Z         "int": {
2026-06-19T05:28:32.4590139Z           "complete": false,
2026-06-19T05:28:32.4590264Z           "evidence": []
2026-06-19T05:28:32.4590370Z         },
2026-06-19T05:28:32.4590472Z         "unit": {
2026-06-19T05:28:32.4590581Z           "complete": false,
2026-06-19T05:28:32.4590701Z           "evidence": []
2026-06-19T05:28:32.4590799Z         }
2026-06-19T05:28:32.4590903Z       }
2026-06-19T05:28:32.4591004Z     },
2026-06-19T05:28:32.4591113Z     {
2026-06-19T05:28:32.4591237Z       "id": "REQ-INST-10",
2026-06-19T05:28:32.4591475Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-19T05:28:32.4591601Z       "requiredStages": [
2026-06-19T05:28:32.4591824Z         "impl",
2026-06-19T05:28:32.4591930Z         "unit"
2026-06-19T05:28:32.4592034Z       ],
2026-06-19T05:28:32.4592143Z       "stages": {
2026-06-19T05:28:32.4592245Z         "doc": {
2026-06-19T05:28:32.4592363Z           "complete": false,
2026-06-19T05:28:32.4592477Z           "evidence": []
2026-06-19T05:28:32.4592579Z         },
2026-06-19T05:28:32.4592792Z         "impl": {
2026-06-19T05:28:32.4592898Z           "complete": true,
2026-06-19T05:28:32.4593011Z           "evidence": [
2026-06-19T05:28:32.4593119Z             {
2026-06-19T05:28:32.4593276Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4593403Z               "line": 648
2026-06-19T05:28:32.4593504Z             },
2026-06-19T05:28:32.4593614Z             {
2026-06-19T05:28:32.4593765Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4593871Z               "line": 725
2026-06-19T05:28:32.4593976Z             },
2026-06-19T05:28:32.4594080Z             {
2026-06-19T05:28:32.4594229Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:28:32.4594333Z               "line": 13
2026-06-19T05:28:32.4594434Z             },
2026-06-19T05:28:32.4594543Z             {
2026-06-19T05:28:32.4594681Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:28:32.4594787Z               "line": 67
2026-06-19T05:28:32.4594901Z             },
2026-06-19T05:28:32.4595006Z             {
2026-06-19T05:28:32.4595150Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.4595268Z               "line": 18
2026-06-19T05:28:32.4595383Z             },
2026-06-19T05:28:32.4595484Z             {
2026-06-19T05:28:32.4595626Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.4595741Z               "line": 444
2026-06-19T05:28:32.4595845Z             }
2026-06-19T05:28:32.4595949Z           ]
2026-06-19T05:28:32.4596063Z         },
2026-06-19T05:28:32.4596174Z         "int": {
2026-06-19T05:28:32.4596296Z           "complete": false,
2026-06-19T05:28:32.4596431Z           "evidence": []
2026-06-19T05:28:32.4596531Z         },
2026-06-19T05:28:32.4596635Z         "unit": {
2026-06-19T05:28:32.4596751Z           "complete": true,
2026-06-19T05:28:32.4596874Z           "evidence": [
2026-06-19T05:28:32.4596984Z             {
2026-06-19T05:28:32.4597132Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4597250Z               "line": 932
2026-06-19T05:28:32.4597357Z             },
2026-06-19T05:28:32.4597489Z             {
2026-06-19T05:28:32.4597657Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4597785Z               "line": 1309
2026-06-19T05:28:32.4597899Z             },
2026-06-19T05:28:32.4598000Z             {
2026-06-19T05:28:32.4598151Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4598264Z               "line": 1320
2026-06-19T05:28:32.4598375Z             },
2026-06-19T05:28:32.4598482Z             {
2026-06-19T05:28:32.4598640Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4598746Z               "line": 1336
2026-06-19T05:28:32.4598849Z             },
2026-06-19T05:28:32.4599022Z             {
2026-06-19T05:28:32.4599168Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4599294Z               "line": 1352
2026-06-19T05:28:32.4599398Z             },
2026-06-19T05:28:32.4599512Z             {
2026-06-19T05:28:32.4599665Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4599774Z               "line": 1374
2026-06-19T05:28:32.4599869Z             },
2026-06-19T05:28:32.4599976Z             {
2026-06-19T05:28:32.4600122Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4600233Z               "line": 1679
2026-06-19T05:28:32.4600342Z             },
2026-06-19T05:28:32.4600451Z             {
2026-06-19T05:28:32.4600586Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:28:32.4600814Z               "line": 130
2026-06-19T05:28:32.4600920Z             },
2026-06-19T05:28:32.4601023Z             {
2026-06-19T05:28:32.4601171Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:28:32.4601289Z               "line": 167
2026-06-19T05:28:32.4601392Z             },
2026-06-19T05:28:32.4601497Z             {
2026-06-19T05:28:32.4601646Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:28:32.4601861Z               "line": 175
2026-06-19T05:28:32.4601961Z             },
2026-06-19T05:28:32.4602064Z             {
2026-06-19T05:28:32.4602208Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-19T05:28:32.4602322Z               "line": 183
2026-06-19T05:28:32.4602427Z             },
2026-06-19T05:28:32.4602528Z             {
2026-06-19T05:28:32.4602665Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.4602771Z               "line": 896
2026-06-19T05:28:32.4602875Z             }
2026-06-19T05:28:32.4602975Z           ]
2026-06-19T05:28:32.4603086Z         }
2026-06-19T05:28:32.4603190Z       }
2026-06-19T05:28:32.4603295Z     },
2026-06-19T05:28:32.4603396Z     {
2026-06-19T05:28:32.4603519Z       "id": "REQ-INST-11",
2026-06-19T05:28:32.4603766Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-19T05:28:32.4603883Z       "requiredStages": [
2026-06-19T05:28:32.4603996Z         "impl",
2026-06-19T05:28:32.4604093Z         "unit"
2026-06-19T05:28:32.4604193Z       ],
2026-06-19T05:28:32.4604297Z       "stages": {
2026-06-19T05:28:32.4604403Z         "doc": {
2026-06-19T05:28:32.4604532Z           "complete": false,
2026-06-19T05:28:32.4604645Z           "evidence": []
2026-06-19T05:28:32.4604756Z         },
2026-06-19T05:28:32.4604860Z         "impl": {
2026-06-19T05:28:32.4604969Z           "complete": true,
2026-06-19T05:28:32.4605080Z           "evidence": [
2026-06-19T05:28:32.4605189Z             {
2026-06-19T05:28:32.4605347Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4605461Z               "line": 514
2026-06-19T05:28:32.4605571Z             },
2026-06-19T05:28:32.4605667Z             {
2026-06-19T05:28:32.4605828Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.4605938Z               "line": 297
2026-06-19T05:28:32.4606039Z             },
2026-06-19T05:28:32.4606147Z             {
2026-06-19T05:28:32.4606292Z               "path": "crates/spt-store/src/rename.rs",
2026-06-19T05:28:32.4606410Z               "line": 59
2026-06-19T05:28:32.4606514Z             },
2026-06-19T05:28:32.4606618Z             {
2026-06-19T05:28:32.4606753Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4606871Z               "line": 5148
2026-06-19T05:28:32.4606977Z             },
2026-06-19T05:28:32.4607077Z             {
2026-06-19T05:28:32.4607214Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4607325Z               "line": 6994
2026-06-19T05:28:32.4607439Z             }
2026-06-19T05:28:32.4607544Z           ]
2026-06-19T05:28:32.4607654Z         },
2026-06-19T05:28:32.4607768Z         "int": {
2026-06-19T05:28:32.4607882Z           "complete": false,
2026-06-19T05:28:32.4608002Z           "evidence": []
2026-06-19T05:28:32.4608102Z         },
2026-06-19T05:28:32.4608217Z         "unit": {
2026-06-19T05:28:32.4608322Z           "complete": true,
2026-06-19T05:28:32.4608440Z           "evidence": [
2026-06-19T05:28:32.4608546Z             {
2026-06-19T05:28:32.4608697Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4608811Z               "line": 1479
2026-06-19T05:28:32.4608911Z             },
2026-06-19T05:28:32.4609080Z             {
2026-06-19T05:28:32.4609233Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4609348Z               "line": 1512
2026-06-19T05:28:32.4609452Z             },
2026-06-19T05:28:32.4609548Z             {
2026-06-19T05:28:32.4609710Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.4609930Z               "line": 527
2026-06-19T05:28:32.4610043Z             },
2026-06-19T05:28:32.4610145Z             {
2026-06-19T05:28:32.4610297Z               "path": "crates/spt-store/src/rename.rs",
2026-06-19T05:28:32.4610401Z               "line": 160
2026-06-19T05:28:32.4610507Z             },
2026-06-19T05:28:32.4610611Z             {
2026-06-19T05:28:32.4610740Z               "path": "crates/spt-store/src/rename.rs",
2026-06-19T05:28:32.4610949Z               "line": 190
2026-06-19T05:28:32.4611060Z             },
2026-06-19T05:28:32.4611165Z             {
2026-06-19T05:28:32.4611312Z               "path": "crates/spt-store/src/rename.rs",
2026-06-19T05:28:32.4611408Z               "line": 225
2026-06-19T05:28:32.4611523Z             },
2026-06-19T05:28:32.4611630Z             {
2026-06-19T05:28:32.4611754Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4611863Z               "line": 7851
2026-06-19T05:28:32.4611976Z             }
2026-06-19T05:28:32.4612076Z           ]
2026-06-19T05:28:32.4612187Z         }
2026-06-19T05:28:32.4612295Z       }
2026-06-19T05:28:32.4612391Z     },
2026-06-19T05:28:32.4612496Z     {
2026-06-19T05:28:32.4612619Z       "id": "REQ-INST-12",
2026-06-19T05:28:32.4612948Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-19T05:28:32.4613074Z       "requiredStages": [
2026-06-19T05:28:32.4613183Z         "impl",
2026-06-19T05:28:32.4613288Z         "unit"
2026-06-19T05:28:32.4613384Z       ],
2026-06-19T05:28:32.4613487Z       "stages": {
2026-06-19T05:28:32.4613593Z         "doc": {
2026-06-19T05:28:32.4613708Z           "complete": false,
2026-06-19T05:28:32.4613821Z           "evidence": []
2026-06-19T05:28:32.4613927Z         },
2026-06-19T05:28:32.4614038Z         "impl": {
2026-06-19T05:28:32.4614150Z           "complete": true,
2026-06-19T05:28:32.4614268Z           "evidence": [
2026-06-19T05:28:32.4614369Z             {
2026-06-19T05:28:32.4614524Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4614648Z               "line": 566
2026-06-19T05:28:32.4614758Z             },
2026-06-19T05:28:32.4614862Z             {
2026-06-19T05:28:32.4614997Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4615115Z               "line": 659
2026-06-19T05:28:32.4615215Z             },
2026-06-19T05:28:32.4615326Z             {
2026-06-19T05:28:32.4615472Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4615588Z               "line": 739
2026-06-19T05:28:32.4615697Z             },
2026-06-19T05:28:32.4615801Z             {
2026-06-19T05:28:32.4615941Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4616050Z               "line": 96
2026-06-19T05:28:32.4616155Z             },
2026-06-19T05:28:32.4616261Z             {
2026-06-19T05:28:32.4616407Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4616518Z               "line": 269
2026-06-19T05:28:32.4616622Z             },
2026-06-19T05:28:32.4616727Z             {
2026-06-19T05:28:32.4616876Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:28:32.4616984Z               "line": 148
2026-06-19T05:28:32.4617097Z             }
2026-06-19T05:28:32.4617198Z           ]
2026-06-19T05:28:32.4617304Z         },
2026-06-19T05:28:32.4617408Z         "int": {
2026-06-19T05:28:32.4617542Z           "complete": false,
2026-06-19T05:28:32.4617656Z           "evidence": []
2026-06-19T05:28:32.4617760Z         },
2026-06-19T05:28:32.4617857Z         "unit": {
2026-06-19T05:28:32.4617976Z           "complete": true,
2026-06-19T05:28:32.4618099Z           "evidence": [
2026-06-19T05:28:32.4618204Z             {
2026-06-19T05:28:32.4618356Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4618477Z               "line": 1554
2026-06-19T05:28:32.4618581Z             },
2026-06-19T05:28:32.4618690Z             {
2026-06-19T05:28:32.4618829Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4619096Z               "line": 1577
2026-06-19T05:28:32.4619196Z             },
2026-06-19T05:28:32.4619300Z             {
2026-06-19T05:28:32.4619443Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4619551Z               "line": 1614
2026-06-19T05:28:32.4619655Z             },
2026-06-19T05:28:32.4619880Z             {
2026-06-19T05:28:32.4620031Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.4620142Z               "line": 457
2026-06-19T05:28:32.4620246Z             },
2026-06-19T05:28:32.4620356Z             {
2026-06-19T05:28:32.4620499Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:28:32.4620617Z               "line": 185
2026-06-19T05:28:32.4620719Z             },
2026-06-19T05:28:32.4620823Z             {
2026-06-19T05:28:32.4620966Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:28:32.4621081Z               "line": 206
2026-06-19T05:28:32.4621200Z             },
2026-06-19T05:28:32.4621300Z             {
2026-06-19T05:28:32.4621453Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:28:32.4621558Z               "line": 232
2026-06-19T05:28:32.4621664Z             }
2026-06-19T05:28:32.4621772Z           ]
2026-06-19T05:28:32.4621877Z         }
2026-06-19T05:28:32.4621983Z       }
2026-06-19T05:28:32.4622092Z     },
2026-06-19T05:28:32.4622190Z     {
2026-06-19T05:28:32.4622305Z       "id": "REQ-INST-13",
2026-06-19T05:28:32.4622517Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-19T05:28:32.4622641Z       "requiredStages": [
2026-06-19T05:28:32.4622752Z         "impl",
2026-06-19T05:28:32.4622865Z         "unit"
2026-06-19T05:28:32.4622966Z       ],
2026-06-19T05:28:32.4623076Z       "stages": {
2026-06-19T05:28:32.4623179Z         "doc": {
2026-06-19T05:28:32.4623305Z           "complete": false,
2026-06-19T05:28:32.4623405Z           "evidence": []
2026-06-19T05:28:32.4623513Z         },
2026-06-19T05:28:32.4623629Z         "impl": {
2026-06-19T05:28:32.4623743Z           "complete": true,
2026-06-19T05:28:32.4623853Z           "evidence": [
2026-06-19T05:28:32.4623949Z             {
2026-06-19T05:28:32.4624091Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.4624201Z               "line": 100
2026-06-19T05:28:32.4624316Z             },
2026-06-19T05:28:32.4624425Z             {
2026-06-19T05:28:32.4624564Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:28:32.4624682Z               "line": 171
2026-06-19T05:28:32.4624781Z             }
2026-06-19T05:28:32.4624891Z           ]
2026-06-19T05:28:32.4624994Z         },
2026-06-19T05:28:32.4625098Z         "int": {
2026-06-19T05:28:32.4625222Z           "complete": false,
2026-06-19T05:28:32.4625328Z           "evidence": []
2026-06-19T05:28:32.4625437Z         },
2026-06-19T05:28:32.4625543Z         "unit": {
2026-06-19T05:28:32.4625661Z           "complete": true,
2026-06-19T05:28:32.4625770Z           "evidence": [
2026-06-19T05:28:32.4625881Z             {
2026-06-19T05:28:32.4626018Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:28:32.4626129Z               "line": 261
2026-06-19T05:28:32.4626238Z             },
2026-06-19T05:28:32.4626338Z             {
2026-06-19T05:28:32.4626492Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-19T05:28:32.4626610Z               "line": 279
2026-06-19T05:28:32.4626715Z             }
2026-06-19T05:28:32.4626821Z           ]
2026-06-19T05:28:32.4626924Z         }
2026-06-19T05:28:32.4627025Z       }
2026-06-19T05:28:32.4627121Z     },
2026-06-19T05:28:32.4627229Z     {
2026-06-19T05:28:32.4627344Z       "id": "REQ-INST-14",
2026-06-19T05:28:32.4627753Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-19T05:28:32.4627868Z       "requiredStages": [
2026-06-19T05:28:32.4627968Z         "doc",
2026-06-19T05:28:32.4628188Z         "impl",
2026-06-19T05:28:32.4628297Z         "unit"
2026-06-19T05:28:32.4628398Z       ],
2026-06-19T05:28:32.4628507Z       "stages": {
2026-06-19T05:28:32.4628616Z         "doc": {
2026-06-19T05:28:32.4628737Z           "complete": true,
2026-06-19T05:28:32.4628845Z           "evidence": [
2026-06-19T05:28:32.4629017Z             {
2026-06-19T05:28:32.4629226Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4629337Z               "line": 585
2026-06-19T05:28:32.4629446Z             },
2026-06-19T05:28:32.4629546Z             {
2026-06-19T05:28:32.4629676Z               "path": "docs/STORAGE.md",
2026-06-19T05:28:32.4629784Z               "line": 49
2026-06-19T05:28:32.4629893Z             }
2026-06-19T05:28:32.4629998Z           ]
2026-06-19T05:28:32.4630102Z         },
2026-06-19T05:28:32.4630205Z         "impl": {
2026-06-19T05:28:32.4630315Z           "complete": true,
2026-06-19T05:28:32.4630435Z           "evidence": [
2026-06-19T05:28:32.4630539Z             {
2026-06-19T05:28:32.4630717Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4630825Z               "line": 410
2026-06-19T05:28:32.4630925Z             },
2026-06-19T05:28:32.4631026Z             {
2026-06-19T05:28:32.4631178Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4631289Z               "line": 367
2026-06-19T05:28:32.4631389Z             },
2026-06-19T05:28:32.4631497Z             {
2026-06-19T05:28:32.4631641Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4631760Z               "line": 281
2026-06-19T05:28:32.4631855Z             },
2026-06-19T05:28:32.4631951Z             {
2026-06-19T05:28:32.4632094Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4632204Z               "line": 1470
2026-06-19T05:28:32.4632314Z             }
2026-06-19T05:28:32.4632418Z           ]
2026-06-19T05:28:32.4632528Z         },
2026-06-19T05:28:32.4632633Z         "int": {
2026-06-19T05:28:32.4632755Z           "complete": false,
2026-06-19T05:28:32.4632875Z           "evidence": []
2026-06-19T05:28:32.4632974Z         },
2026-06-19T05:28:32.4633081Z         "unit": {
2026-06-19T05:28:32.4633187Z           "complete": true,
2026-06-19T05:28:32.4633302Z           "evidence": [
2026-06-19T05:28:32.4633410Z             {
2026-06-19T05:28:32.4633565Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4633692Z               "line": 1163
2026-06-19T05:28:32.4633797Z             },
2026-06-19T05:28:32.4633903Z             {
2026-06-19T05:28:32.4634050Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4634170Z               "line": 944
2026-06-19T05:28:32.4634270Z             },
2026-06-19T05:28:32.4634374Z             {
2026-06-19T05:28:32.4634518Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4634631Z               "line": 1205
2026-06-19T05:28:32.4634737Z             },
2026-06-19T05:28:32.4634838Z             {
2026-06-19T05:28:32.4634990Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4635096Z               "line": 633
2026-06-19T05:28:32.4635200Z             },
2026-06-19T05:28:32.4635303Z             {
2026-06-19T05:28:32.4635437Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4635550Z               "line": 7927
2026-06-19T05:28:32.4635653Z             }
2026-06-19T05:28:32.4635763Z           ]
2026-06-19T05:28:32.4635870Z         }
2026-06-19T05:28:32.4635973Z       }
2026-06-19T05:28:32.4636078Z     },
2026-06-19T05:28:32.4636178Z     {
2026-06-19T05:28:32.4636297Z       "id": "REQ-INST-15",
2026-06-19T05:28:32.4637037Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-19T05:28:32.4637160Z       "requiredStages": [
2026-06-19T05:28:32.4637376Z         "doc",
2026-06-19T05:28:32.4637475Z         "impl",
2026-06-19T05:28:32.4637580Z         "unit"
2026-06-19T05:28:32.4637672Z       ],
2026-06-19T05:28:32.4637776Z       "stages": {
2026-06-19T05:28:32.4637885Z         "doc": {
2026-06-19T05:28:32.4638001Z           "complete": true,
2026-06-19T05:28:32.4638114Z           "evidence": [
2026-06-19T05:28:32.4638285Z             {
2026-06-19T05:28:32.4638499Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-19T05:28:32.4638609Z               "line": 3
2026-06-19T05:28:32.4638714Z             }
2026-06-19T05:28:32.4638818Z           ]
2026-06-19T05:28:32.4638924Z         },
2026-06-19T05:28:32.4639100Z         "impl": {
2026-06-19T05:28:32.4639214Z           "complete": true,
2026-06-19T05:28:32.4639325Z           "evidence": [
2026-06-19T05:28:32.4639425Z             {
2026-06-19T05:28:32.4639582Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4639691Z               "line": 353
2026-06-19T05:28:32.4639810Z             },
2026-06-19T05:28:32.4639912Z             {
2026-06-19T05:28:32.4640048Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.4640149Z               "line": 60
2026-06-19T05:28:32.4640251Z             },
2026-06-19T05:28:32.4640353Z             {
2026-06-19T05:28:32.4640515Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.4640620Z               "line": 368
2026-06-19T05:28:32.4643733Z             },
2026-06-19T05:28:32.4643872Z             {
2026-06-19T05:28:32.4644052Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.4644172Z               "line": 417
2026-06-19T05:28:32.4644276Z             },
2026-06-19T05:28:32.4644377Z             {
2026-06-19T05:28:32.4644525Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:28:32.4644638Z               "line": 19
2026-06-19T05:28:32.4644740Z             },
2026-06-19T05:28:32.4644844Z             {
2026-06-19T05:28:32.4645011Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:28:32.4645130Z               "line": 70
2026-06-19T05:28:32.4645240Z             },
2026-06-19T05:28:32.4645341Z             {
2026-06-19T05:28:32.4645487Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:28:32.4645597Z               "line": 96
2026-06-19T05:28:32.4645703Z             },
2026-06-19T05:28:32.4645812Z             {
2026-06-19T05:28:32.4645958Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:28:32.4646077Z               "line": 121
2026-06-19T05:28:32.4646180Z             },
2026-06-19T05:28:32.4646285Z             {
2026-06-19T05:28:32.4646415Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:28:32.4646533Z               "line": 172
2026-06-19T05:28:32.4646634Z             },
2026-06-19T05:28:32.4646738Z             {
2026-06-19T05:28:32.4646886Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.4647006Z               "line": 174
2026-06-19T05:28:32.4647116Z             },
2026-06-19T05:28:32.4647215Z             {
2026-06-19T05:28:32.4647354Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4647468Z               "line": 1362
2026-06-19T05:28:32.4647573Z             }
2026-06-19T05:28:32.4647678Z           ]
2026-06-19T05:28:32.4647769Z         },
2026-06-19T05:28:32.4647878Z         "int": {
2026-06-19T05:28:32.4647998Z           "complete": false,
2026-06-19T05:28:32.4648116Z           "evidence": []
2026-06-19T05:28:32.4648213Z         },
2026-06-19T05:28:32.4648322Z         "unit": {
2026-06-19T05:28:32.4648440Z           "complete": true,
2026-06-19T05:28:32.4648542Z           "evidence": [
2026-06-19T05:28:32.4648646Z             {
2026-06-19T05:28:32.4648811Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.4648927Z               "line": 577
2026-06-19T05:28:32.4649126Z             },
2026-06-19T05:28:32.4649232Z             {
2026-06-19T05:28:32.4649402Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.4649661Z               "line": 638
2026-06-19T05:28:32.4649765Z             },
2026-06-19T05:28:32.4649866Z             {
2026-06-19T05:28:32.4650013Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:28:32.4650123Z               "line": 213
2026-06-19T05:28:32.4650219Z             },
2026-06-19T05:28:32.4650414Z             {
2026-06-19T05:28:32.4650557Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:28:32.4650666Z               "line": 249
2026-06-19T05:28:32.4650767Z             },
2026-06-19T05:28:32.4650867Z             {
2026-06-19T05:28:32.4651009Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:28:32.4651113Z               "line": 262
2026-06-19T05:28:32.4651217Z             },
2026-06-19T05:28:32.4651326Z             {
2026-06-19T05:28:32.4651474Z               "path": "crates/spt-store/src/home.rs",
2026-06-19T05:28:32.4651583Z               "line": 338
2026-06-19T05:28:32.4651687Z             },
2026-06-19T05:28:32.4651794Z             {
2026-06-19T05:28:32.4651936Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.4652056Z               "line": 659
2026-06-19T05:28:32.4652151Z             },
2026-06-19T05:28:32.4652250Z             {
2026-06-19T05:28:32.4652375Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4652499Z               "line": 7864
2026-06-19T05:28:32.4652608Z             },
2026-06-19T05:28:32.4652748Z             {
2026-06-19T05:28:32.4652880Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4652990Z               "line": 9642
2026-06-19T05:28:32.4653086Z             }
2026-06-19T05:28:32.4653185Z           ]
2026-06-19T05:28:32.4653290Z         }
2026-06-19T05:28:32.4653396Z       }
2026-06-19T05:28:32.4653495Z     },
2026-06-19T05:28:32.4653600Z     {
2026-06-19T05:28:32.4653716Z       "id": "REQ-INST-2",
2026-06-19T05:28:32.4653871Z       "title": "Per-node files, synced Psyche mind",
2026-06-19T05:28:32.4653990Z       "requiredStages": [
2026-06-19T05:28:32.4654089Z         "impl",
2026-06-19T05:28:32.4654202Z         "unit"
2026-06-19T05:28:32.4654302Z       ],
2026-06-19T05:28:32.4654404Z       "stages": {
2026-06-19T05:28:32.4654503Z         "doc": {
2026-06-19T05:28:32.4654622Z           "complete": false,
2026-06-19T05:28:32.4654737Z           "evidence": []
2026-06-19T05:28:32.4654851Z         },
2026-06-19T05:28:32.4654957Z         "impl": {
2026-06-19T05:28:32.4655071Z           "complete": true,
2026-06-19T05:28:32.4655180Z           "evidence": [
2026-06-19T05:28:32.4655286Z             {
2026-06-19T05:28:32.4655447Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4655557Z               "line": 108
2026-06-19T05:28:32.4655652Z             },
2026-06-19T05:28:32.4655752Z             {
2026-06-19T05:28:32.4655891Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:28:32.4656005Z               "line": 28
2026-06-19T05:28:32.4656110Z             },
2026-06-19T05:28:32.4656221Z             {
2026-06-19T05:28:32.4656358Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:28:32.4656471Z               "line": 74
2026-06-19T05:28:32.4656712Z             },
2026-06-19T05:28:32.4656816Z             {
2026-06-19T05:28:32.4656956Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:28:32.4657060Z               "line": 96
2026-06-19T05:28:32.4657174Z             },
2026-06-19T05:28:32.4657280Z             {
2026-06-19T05:28:32.4657412Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:28:32.4657523Z               "line": 86
2026-06-19T05:28:32.4657628Z             },
2026-06-19T05:28:32.4657732Z             {
2026-06-19T05:28:32.4657871Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-19T05:28:32.4657985Z               "line": 118
2026-06-19T05:28:32.4658070Z             }
2026-06-19T05:28:32.4658181Z           ]
2026-06-19T05:28:32.4658285Z         },
2026-06-19T05:28:32.4658390Z         "int": {
2026-06-19T05:28:32.4658614Z           "complete": false,
2026-06-19T05:28:32.4658719Z           "evidence": []
2026-06-19T05:28:32.4658825Z         },
2026-06-19T05:28:32.4658929Z         "unit": {
2026-06-19T05:28:32.4659154Z           "complete": true,
2026-06-19T05:28:32.4659267Z           "evidence": [
2026-06-19T05:28:32.4659371Z             {
2026-06-19T05:28:32.4659520Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-19T05:28:32.4659853Z               "line": 250
2026-06-19T05:28:32.4659972Z             },
2026-06-19T05:28:32.4660069Z             {
2026-06-19T05:28:32.4660217Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:28:32.4660330Z               "line": 280
2026-06-19T05:28:32.4660436Z             }
2026-06-19T05:28:32.4660540Z           ]
2026-06-19T05:28:32.4660640Z         }
2026-06-19T05:28:32.4660746Z       }
2026-06-19T05:28:32.4660845Z     },
2026-06-19T05:28:32.4660950Z     {
2026-06-19T05:28:32.4661075Z       "id": "REQ-INST-3",
2026-06-19T05:28:32.4661259Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-19T05:28:32.4661380Z       "requiredStages": [
2026-06-19T05:28:32.4661484Z         "doc",
2026-06-19T05:28:32.4661588Z         "impl",
2026-06-19T05:28:32.4661693Z         "unit"
2026-06-19T05:28:32.4661805Z       ],
2026-06-19T05:28:32.4661905Z       "stages": {
2026-06-19T05:28:32.4662005Z         "doc": {
2026-06-19T05:28:32.4662120Z           "complete": true,
2026-06-19T05:28:32.4662234Z           "evidence": [
2026-06-19T05:28:32.4662339Z             {
2026-06-19T05:28:32.4662477Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-19T05:28:32.4662581Z               "line": 3
2026-06-19T05:28:32.4662688Z             }
2026-06-19T05:28:32.4662792Z           ]
2026-06-19T05:28:32.4662896Z         },
2026-06-19T05:28:32.4663003Z         "impl": {
2026-06-19T05:28:32.4663116Z           "complete": true,
2026-06-19T05:28:32.4663221Z           "evidence": [
2026-06-19T05:28:32.4663336Z             {
2026-06-19T05:28:32.4663497Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:28:32.4663608Z               "line": 59
2026-06-19T05:28:32.4663717Z             },
2026-06-19T05:28:32.4663822Z             {
2026-06-19T05:28:32.4663971Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.4664079Z               "line": 480
2026-06-19T05:28:32.4664185Z             },
2026-06-19T05:28:32.4664300Z             {
2026-06-19T05:28:32.4664446Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4664555Z               "line": 254
2026-06-19T05:28:32.4664659Z             },
2026-06-19T05:28:32.4664767Z             {
2026-06-19T05:28:32.4664911Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4665058Z               "line": 384
2026-06-19T05:28:32.4665158Z             },
2026-06-19T05:28:32.4665254Z             {
2026-06-19T05:28:32.4665411Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4665517Z               "line": 418
2026-06-19T05:28:32.4665626Z             },
2026-06-19T05:28:32.4665725Z             {
2026-06-19T05:28:32.4665874Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-19T05:28:32.4665993Z               "line": 74
2026-06-19T05:28:32.4666097Z             },
2026-06-19T05:28:32.4666203Z             {
2026-06-19T05:28:32.4666365Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4666485Z               "line": 234
2026-06-19T05:28:32.4666589Z             },
2026-06-19T05:28:32.4666689Z             {
2026-06-19T05:28:32.4666847Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4666956Z               "line": 396
2026-06-19T05:28:32.4667064Z             },
2026-06-19T05:28:32.4667160Z             {
2026-06-19T05:28:32.4667306Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4667415Z               "line": 45
2026-06-19T05:28:32.4667521Z             },
2026-06-19T05:28:32.4667625Z             {
2026-06-19T05:28:32.4667883Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4667996Z               "line": 114
2026-06-19T05:28:32.4668098Z             },
2026-06-19T05:28:32.4668202Z             {
2026-06-19T05:28:32.4668355Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4668464Z               "line": 152
2026-06-19T05:28:32.4668630Z             },
2026-06-19T05:28:32.4668737Z             {
2026-06-19T05:28:32.4668884Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4669085Z               "line": 168
2026-06-19T05:28:32.4669188Z             },
2026-06-19T05:28:32.4669289Z             {
2026-06-19T05:28:32.4669437Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4669552Z               "line": 178
2026-06-19T05:28:32.4669657Z             },
2026-06-19T05:28:32.4669762Z             {
2026-06-19T05:28:32.4669907Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4670027Z               "line": 210
2026-06-19T05:28:32.4670133Z             },
2026-06-19T05:28:32.4670227Z             {
2026-06-19T05:28:32.4670381Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4670485Z               "line": 287
2026-06-19T05:28:32.4670590Z             },
2026-06-19T05:28:32.4670691Z             {
2026-06-19T05:28:32.4670842Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4670958Z               "line": 311
2026-06-19T05:28:32.4671062Z             },
2026-06-19T05:28:32.4671166Z             {
2026-06-19T05:28:32.4671311Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4671424Z               "line": 389
2026-06-19T05:28:32.4671514Z             },
2026-06-19T05:28:32.4671625Z             {
2026-06-19T05:28:32.4671777Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4671887Z               "line": 438
2026-06-19T05:28:32.4671992Z             },
2026-06-19T05:28:32.4672100Z             {
2026-06-19T05:28:32.4672253Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-19T05:28:32.4672361Z               "line": 37
2026-06-19T05:28:32.4672465Z             },
2026-06-19T05:28:32.4672570Z             {
2026-06-19T05:28:32.4672718Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4672817Z               "line": 62
2026-06-19T05:28:32.4672914Z             },
2026-06-19T05:28:32.4673019Z             {
2026-06-19T05:28:32.4673151Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4673257Z               "line": 267
2026-06-19T05:28:32.4673357Z             },
2026-06-19T05:28:32.4673457Z             {
2026-06-19T05:28:32.4673586Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4673695Z               "line": 1741
2026-06-19T05:28:32.4673805Z             }
2026-06-19T05:28:32.4673911Z           ]
2026-06-19T05:28:32.4674015Z         },
2026-06-19T05:28:32.4674130Z         "int": {
2026-06-19T05:28:32.4674249Z           "complete": false,
2026-06-19T05:28:32.4674362Z           "evidence": []
2026-06-19T05:28:32.4674464Z         },
2026-06-19T05:28:32.4674564Z         "unit": {
2026-06-19T05:28:32.4674687Z           "complete": true,
2026-06-19T05:28:32.4674793Z           "evidence": [
2026-06-19T05:28:32.4674897Z             {
2026-06-19T05:28:32.4675043Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:28:32.4675163Z               "line": 360
2026-06-19T05:28:32.4675265Z             },
2026-06-19T05:28:32.4675370Z             {
2026-06-19T05:28:32.4675519Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4675632Z               "line": 837
2026-06-19T05:28:32.4675742Z             },
2026-06-19T05:28:32.4675843Z             {
2026-06-19T05:28:32.4675990Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4676101Z               "line": 894
2026-06-19T05:28:32.4676206Z             },
2026-06-19T05:28:32.4676309Z             {
2026-06-19T05:28:32.4676572Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.4676687Z               "line": 889
2026-06-19T05:28:32.4676782Z             },
2026-06-19T05:28:32.4676882Z             {
2026-06-19T05:28:32.4677031Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.4677144Z               "line": 1014
2026-06-19T05:28:32.4677350Z             },
2026-06-19T05:28:32.4677454Z             {
2026-06-19T05:28:32.4677619Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4677725Z               "line": 1264
2026-06-19T05:28:32.4677827Z             },
2026-06-19T05:28:32.4677932Z             {
2026-06-19T05:28:32.4678091Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4678199Z               "line": 1405
2026-06-19T05:28:32.4678299Z             },
2026-06-19T05:28:32.4678396Z             {
2026-06-19T05:28:32.4678538Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4678663Z               "line": 449
2026-06-19T05:28:32.4678762Z             },
2026-06-19T05:28:32.4678867Z             {
2026-06-19T05:28:32.4679096Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4679210Z               "line": 485
2026-06-19T05:28:32.4679316Z             },
2026-06-19T05:28:32.4679420Z             {
2026-06-19T05:28:32.4679578Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4679692Z               "line": 540
2026-06-19T05:28:32.4679783Z             },
2026-06-19T05:28:32.4679883Z             {
2026-06-19T05:28:32.4680011Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4680121Z               "line": 697
2026-06-19T05:28:32.4680217Z             },
2026-06-19T05:28:32.4680322Z             {
2026-06-19T05:28:32.4680467Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4680573Z               "line": 931
2026-06-19T05:28:32.4680674Z             },
2026-06-19T05:28:32.4680777Z             {
2026-06-19T05:28:32.4680922Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4681031Z               "line": 945
2026-06-19T05:28:32.4681135Z             },
2026-06-19T05:28:32.4681236Z             {
2026-06-19T05:28:32.4681388Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4681503Z               "line": 1290
2026-06-19T05:28:32.4681608Z             },
2026-06-19T05:28:32.4681712Z             {
2026-06-19T05:28:32.4681852Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.4681965Z               "line": 583
2026-06-19T05:28:32.4682065Z             },
2026-06-19T05:28:32.4682167Z             {
2026-06-19T05:28:32.4682308Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4682419Z               "line": 7888
2026-06-19T05:28:32.4682520Z             }
2026-06-19T05:28:32.4682623Z           ]
2026-06-19T05:28:32.4682732Z         }
2026-06-19T05:28:32.4682841Z       }
2026-06-19T05:28:32.4682945Z     },
2026-06-19T05:28:32.4683044Z     {
2026-06-19T05:28:32.4683159Z       "id": "REQ-INST-4",
2026-06-19T05:28:32.4683373Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-19T05:28:32.4683484Z       "requiredStages": [
2026-06-19T05:28:32.4683588Z         "impl",
2026-06-19T05:28:32.4683697Z         "unit"
2026-06-19T05:28:32.4683808Z       ],
2026-06-19T05:28:32.4683912Z       "stages": {
2026-06-19T05:28:32.4684007Z         "doc": {
2026-06-19T05:28:32.4684128Z           "complete": false,
2026-06-19T05:28:32.4684246Z           "evidence": []
2026-06-19T05:28:32.4684346Z         },
2026-06-19T05:28:32.4684452Z         "impl": {
2026-06-19T05:28:32.4684566Z           "complete": true,
2026-06-19T05:28:32.4684690Z           "evidence": [
2026-06-19T05:28:32.4684790Z             {
2026-06-19T05:28:32.4684942Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4685053Z               "line": 385
2026-06-19T05:28:32.4685161Z             },
2026-06-19T05:28:32.4685396Z             {
2026-06-19T05:28:32.4685542Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4685661Z               "line": 202
2026-06-19T05:28:32.4685765Z             },
2026-06-19T05:28:32.4685868Z             {
2026-06-19T05:28:32.4686016Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4686231Z               "line": 234
2026-06-19T05:28:32.4686337Z             },
2026-06-19T05:28:32.4686437Z             {
2026-06-19T05:28:32.4686583Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4686690Z               "line": 274
2026-06-19T05:28:32.4686798Z             }
2026-06-19T05:28:32.4686898Z           ]
2026-06-19T05:28:32.4687009Z         },
2026-06-19T05:28:32.4687118Z         "int": {
2026-06-19T05:28:32.4687237Z           "complete": false,
2026-06-19T05:28:32.4687352Z           "evidence": []
2026-06-19T05:28:32.4687452Z         },
2026-06-19T05:28:32.4687562Z         "unit": {
2026-06-19T05:28:32.4687681Z           "complete": true,
2026-06-19T05:28:32.4687804Z           "evidence": [
2026-06-19T05:28:32.4687910Z             {
2026-06-19T05:28:32.4688042Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4688160Z               "line": 889
2026-06-19T05:28:32.4688266Z             },
2026-06-19T05:28:32.4688373Z             {
2026-06-19T05:28:32.4688521Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4688636Z               "line": 561
2026-06-19T05:28:32.4688736Z             },
2026-06-19T05:28:32.4688841Z             {
2026-06-19T05:28:32.4689055Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4689165Z               "line": 668
2026-06-19T05:28:32.4689275Z             },
2026-06-19T05:28:32.4689374Z             {
2026-06-19T05:28:32.4689514Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4689622Z               "line": 750
2026-06-19T05:28:32.4689727Z             }
2026-06-19T05:28:32.4689828Z           ]
2026-06-19T05:28:32.4689933Z         }
2026-06-19T05:28:32.4690042Z       }
2026-06-19T05:28:32.4690133Z     },
2026-06-19T05:28:32.4690242Z     {
2026-06-19T05:28:32.4690352Z       "id": "REQ-INST-5",
2026-06-19T05:28:32.4690557Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-19T05:28:32.4690676Z       "requiredStages": [
2026-06-19T05:28:32.4690777Z         "impl",
2026-06-19T05:28:32.4690891Z         "unit",
2026-06-19T05:28:32.4691004Z         "int"
2026-06-19T05:28:32.4691104Z       ],
2026-06-19T05:28:32.4691210Z       "stages": {
2026-06-19T05:28:32.4691314Z         "doc": {
2026-06-19T05:28:32.4691434Z           "complete": false,
2026-06-19T05:28:32.4691544Z           "evidence": []
2026-06-19T05:28:32.4691648Z         },
2026-06-19T05:28:32.4691759Z         "impl": {
2026-06-19T05:28:32.4691868Z           "complete": true,
2026-06-19T05:28:32.4691991Z           "evidence": [
2026-06-19T05:28:32.4692093Z             {
2026-06-19T05:28:32.4692249Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-19T05:28:32.4692349Z               "line": 85
2026-06-19T05:28:32.4692459Z             },
2026-06-19T05:28:32.4692549Z             {
2026-06-19T05:28:32.4692698Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.4692807Z               "line": 68
2026-06-19T05:28:32.4692916Z             },
2026-06-19T05:28:32.4693027Z             {
2026-06-19T05:28:32.4693164Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.4693273Z               "line": 99
2026-06-19T05:28:32.4693383Z             },
2026-06-19T05:28:32.4693486Z             {
2026-06-19T05:28:32.4693623Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.4693734Z               "line": 183
2026-06-19T05:28:32.4693838Z             },
2026-06-19T05:28:32.4693943Z             {
2026-06-19T05:28:32.4694073Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.4694181Z               "line": 314
2026-06-19T05:28:32.4694415Z             }
2026-06-19T05:28:32.4694520Z           ]
2026-06-19T05:28:32.4694616Z         },
2026-06-19T05:28:32.4694721Z         "int": {
2026-06-19T05:28:32.4694830Z           "complete": true,
2026-06-19T05:28:32.4694940Z           "evidence": [
2026-06-19T05:28:32.4695045Z             {
2026-06-19T05:28:32.4695187Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.4695407Z               "line": 156
2026-06-19T05:28:32.4695511Z             },
2026-06-19T05:28:32.4695618Z             {
2026-06-19T05:28:32.4695764Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-19T05:28:32.4695875Z               "line": 145
2026-06-19T05:28:32.4695985Z             },
2026-06-19T05:28:32.4696083Z             {
2026-06-19T05:28:32.4696236Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.4696349Z               "line": 706
2026-06-19T05:28:32.4696462Z             },
2026-06-19T05:28:32.4696562Z             {
2026-06-19T05:28:32.4696720Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.4696838Z               "line": 1068
2026-06-19T05:28:32.4696940Z             }
2026-06-19T05:28:32.4697035Z           ]
2026-06-19T05:28:32.4697139Z         },
2026-06-19T05:28:32.4697235Z         "unit": {
2026-06-19T05:28:32.4697345Z           "complete": true,
2026-06-19T05:28:32.4697468Z           "evidence": [
2026-06-19T05:28:32.4697574Z             {
2026-06-19T05:28:32.4697702Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.4697822Z               "line": 552
2026-06-19T05:28:32.4697922Z             },
2026-06-19T05:28:32.4698026Z             {
2026-06-19T05:28:32.4698160Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.4698269Z               "line": 595
2026-06-19T05:28:32.4698374Z             },
2026-06-19T05:28:32.4698480Z             {
2026-06-19T05:28:32.4698626Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:28:32.4698735Z               "line": 219
2026-06-19T05:28:32.4698840Z             }
2026-06-19T05:28:32.4699033Z           ]
2026-06-19T05:28:32.4699134Z         }
2026-06-19T05:28:32.4699239Z       }
2026-06-19T05:28:32.4699343Z     },
2026-06-19T05:28:32.4699454Z     {
2026-06-19T05:28:32.4699564Z       "id": "REQ-INST-6",
2026-06-19T05:28:32.4699778Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-19T05:28:32.4699902Z       "requiredStages": [
2026-06-19T05:28:32.4700011Z         "impl",
2026-06-19T05:28:32.4700122Z         "unit",
2026-06-19T05:28:32.4700226Z         "int"
2026-06-19T05:28:32.4700330Z       ],
2026-06-19T05:28:32.4700432Z       "stages": {
2026-06-19T05:28:32.4700541Z         "doc": {
2026-06-19T05:28:32.4700654Z           "complete": true,
2026-06-19T05:28:32.4700766Z           "evidence": [
2026-06-19T05:28:32.4700874Z             {
2026-06-19T05:28:32.4700999Z               "path": "docs/DEFERRED.md",
2026-06-19T05:28:32.4701104Z               "line": 13
2026-06-19T05:28:32.4701208Z             }
2026-06-19T05:28:32.4701314Z           ]
2026-06-19T05:28:32.4701419Z         },
2026-06-19T05:28:32.4701522Z         "impl": {
2026-06-19T05:28:32.4701631Z           "complete": true,
2026-06-19T05:28:32.4701746Z           "evidence": [
2026-06-19T05:28:32.4701855Z             {
2026-06-19T05:28:32.4702003Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.4702123Z               "line": 391
2026-06-19T05:28:32.4702222Z             },
2026-06-19T05:28:32.4702333Z             {
2026-06-19T05:28:32.4702494Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-19T05:28:32.4702604Z               "line": 27
2026-06-19T05:28:32.4702714Z             },
2026-06-19T05:28:32.4702818Z             {
2026-06-19T05:28:32.4702967Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-19T05:28:32.4703066Z               "line": 73
2026-06-19T05:28:32.4703171Z             },
2026-06-19T05:28:32.4703282Z             {
2026-06-19T05:28:32.4703524Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-19T05:28:32.4703649Z               "line": 182
2026-06-19T05:28:32.4703753Z             },
2026-06-19T05:28:32.4703861Z             {
2026-06-19T05:28:32.4704013Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4704126Z               "line": 426
2026-06-19T05:28:32.4704332Z             },
2026-06-19T05:28:32.4704436Z             {
2026-06-19T05:28:32.4704575Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-19T05:28:32.4704689Z               "line": 31
2026-06-19T05:28:32.4704793Z             },
2026-06-19T05:28:32.4704895Z             {
2026-06-19T05:28:32.4705042Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.4705152Z               "line": 202
2026-06-19T05:28:32.4705252Z             },
2026-06-19T05:28:32.4705361Z             {
2026-06-19T05:28:32.4705500Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.4705624Z               "line": 83
2026-06-19T05:28:32.4705733Z             },
2026-06-19T05:28:32.4705835Z             {
2026-06-19T05:28:32.4705972Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4706086Z               "line": 1742
2026-06-19T05:28:32.4706192Z             },
2026-06-19T05:28:32.4706296Z             {
2026-06-19T05:28:32.4706435Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.4706559Z               "line": 179
2026-06-19T05:28:32.4706667Z             },
2026-06-19T05:28:32.4706776Z             {
2026-06-19T05:28:32.4706904Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.4707012Z               "line": 215
2026-06-19T05:28:32.4707118Z             }
2026-06-19T05:28:32.4707228Z           ]
2026-06-19T05:28:32.4707336Z         },
2026-06-19T05:28:32.4707438Z         "int": {
2026-06-19T05:28:32.4707562Z           "complete": true,
2026-06-19T05:28:32.4707670Z           "evidence": [
2026-06-19T05:28:32.4707771Z             {
2026-06-19T05:28:32.4707924Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.4708028Z               "line": 720
2026-06-19T05:28:32.4708134Z             },
2026-06-19T05:28:32.4708234Z             {
2026-06-19T05:28:32.4708382Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.4708491Z               "line": 1113
2026-06-19T05:28:32.4708605Z             },
2026-06-19T05:28:32.4708707Z             {
2026-06-19T05:28:32.4708853Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.4709083Z               "line": 726
2026-06-19T05:28:32.4709229Z             }
2026-06-19T05:28:32.4709358Z           ]
2026-06-19T05:28:32.4709457Z         },
2026-06-19T05:28:32.4709569Z         "unit": {
2026-06-19T05:28:32.4709689Z           "complete": true,
2026-06-19T05:28:32.4709805Z           "evidence": [
2026-06-19T05:28:32.4709908Z             {
2026-06-19T05:28:32.4710062Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.4710184Z               "line": 661
2026-06-19T05:28:32.4710290Z             },
2026-06-19T05:28:32.4710395Z             {
2026-06-19T05:28:32.4710537Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.4710653Z               "line": 899
2026-06-19T05:28:32.4710747Z             },
2026-06-19T05:28:32.4710852Z             {
2026-06-19T05:28:32.4710997Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-19T05:28:32.4711101Z               "line": 66
2026-06-19T05:28:32.4711210Z             },
2026-06-19T05:28:32.4711311Z             {
2026-06-19T05:28:32.4711453Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.4711569Z               "line": 297
2026-06-19T05:28:32.4711673Z             },
2026-06-19T05:28:32.4711782Z             {
2026-06-19T05:28:32.4711922Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.4712039Z               "line": 203
2026-06-19T05:28:32.4712144Z             }
2026-06-19T05:28:32.4712254Z           ]
2026-06-19T05:28:32.4712482Z         }
2026-06-19T05:28:32.4712573Z       }
2026-06-19T05:28:32.4712674Z     },
2026-06-19T05:28:32.4712773Z     {
2026-06-19T05:28:32.4712893Z       "id": "REQ-INST-7",
2026-06-19T05:28:32.4713068Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-19T05:28:32.4713198Z       "requiredStages": [
2026-06-19T05:28:32.4713307Z         "impl",
2026-06-19T05:28:32.4713508Z         "unit",
2026-06-19T05:28:32.4713617Z         "int"
2026-06-19T05:28:32.4713717Z       ],
2026-06-19T05:28:32.4713833Z       "stages": {
2026-06-19T05:28:32.4713927Z         "doc": {
2026-06-19T05:28:32.4714041Z           "complete": false,
2026-06-19T05:28:32.4714162Z           "evidence": []
2026-06-19T05:28:32.4714256Z         },
2026-06-19T05:28:32.4714365Z         "impl": {
2026-06-19T05:28:32.4714484Z           "complete": true,
2026-06-19T05:28:32.4714597Z           "evidence": [
2026-06-19T05:28:32.4714691Z             {
2026-06-19T05:28:32.4714844Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.4714963Z               "line": 436
2026-06-19T05:28:32.4715063Z             },
2026-06-19T05:28:32.4715169Z             {
2026-06-19T05:28:32.4715325Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4715446Z               "line": 27
2026-06-19T05:28:32.4715536Z             },
2026-06-19T05:28:32.4715645Z             {
2026-06-19T05:28:32.4715798Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4715903Z               "line": 207
2026-06-19T05:28:32.4716007Z             },
2026-06-19T05:28:32.4716108Z             {
2026-06-19T05:28:32.4716270Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4716370Z               "line": 344
2026-06-19T05:28:32.4716480Z             },
2026-06-19T05:28:32.4716589Z             {
2026-06-19T05:28:32.4716734Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-19T05:28:32.4716846Z               "line": 59
2026-06-19T05:28:32.4716961Z             },
2026-06-19T05:28:32.4717067Z             {
2026-06-19T05:28:32.4717213Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4717327Z               "line": 41
2026-06-19T05:28:32.4717436Z             },
2026-06-19T05:28:32.4717535Z             {
2026-06-19T05:28:32.4717692Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:28:32.4717802Z               "line": 27
2026-06-19T05:28:32.4717911Z             },
2026-06-19T05:28:32.4718012Z             {
2026-06-19T05:28:32.4718164Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:28:32.4718278Z               "line": 119
2026-06-19T05:28:32.4718384Z             },
2026-06-19T05:28:32.4718493Z             {
2026-06-19T05:28:32.4718642Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:28:32.4718760Z               "line": 134
2026-06-19T05:28:32.4718864Z             },
2026-06-19T05:28:32.4719023Z             {
2026-06-19T05:28:32.4719184Z               "path": "crates/spt-store/src/registry.rs",
2026-06-19T05:28:32.4719286Z               "line": 139
2026-06-19T05:28:32.4719380Z             }
2026-06-19T05:28:32.4719485Z           ]
2026-06-19T05:28:32.4719586Z         },
2026-06-19T05:28:32.4719686Z         "int": {
2026-06-19T05:28:32.4719803Z           "complete": true,
2026-06-19T05:28:32.4719918Z           "evidence": [
2026-06-19T05:28:32.4720022Z             {
2026-06-19T05:28:32.4720173Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-19T05:28:32.4720278Z               "line": 145
2026-06-19T05:28:32.4720393Z             },
2026-06-19T05:28:32.4720497Z             {
2026-06-19T05:28:32.4720641Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.4720745Z               "line": 664
2026-06-19T05:28:32.4720840Z             },
2026-06-19T05:28:32.4720946Z             {
2026-06-19T05:28:32.4721092Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.4721203Z               "line": 963
2026-06-19T05:28:32.4724315Z             }
2026-06-19T05:28:32.4724450Z           ]
2026-06-19T05:28:32.4724563Z         },
2026-06-19T05:28:32.4724673Z         "unit": {
2026-06-19T05:28:32.4724798Z           "complete": true,
2026-06-19T05:28:32.4724901Z           "evidence": [
2026-06-19T05:28:32.4725006Z             {
2026-06-19T05:28:32.4725180Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4725453Z               "line": 1134
2026-06-19T05:28:32.4725556Z             },
2026-06-19T05:28:32.4725657Z             {
2026-06-19T05:28:32.4725833Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.4725942Z               "line": 1521
2026-06-19T05:28:32.4726053Z             },
2026-06-19T05:28:32.4726166Z             {
2026-06-19T05:28:32.4726321Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-19T05:28:32.4726439Z               "line": 84
2026-06-19T05:28:32.4726524Z             },
2026-06-19T05:28:32.4726640Z             {
2026-06-19T05:28:32.4726796Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4726916Z               "line": 812
2026-06-19T05:28:32.4727021Z             },
2026-06-19T05:28:32.4727125Z             {
2026-06-19T05:28:32.4727279Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4727392Z               "line": 823
2026-06-19T05:28:32.4727512Z             },
2026-06-19T05:28:32.4727613Z             {
2026-06-19T05:28:32.4727764Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4727878Z               "line": 838
2026-06-19T05:28:32.4727973Z             },
2026-06-19T05:28:32.4728076Z             {
2026-06-19T05:28:32.4728238Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:28:32.4728353Z               "line": 166
2026-06-19T05:28:32.4728447Z             },
2026-06-19T05:28:32.4728543Z             {
2026-06-19T05:28:32.4728701Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:28:32.4728809Z               "line": 181
2026-06-19T05:28:32.4728915Z             },
2026-06-19T05:28:32.4729110Z             {
2026-06-19T05:28:32.4729254Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:28:32.4729368Z               "line": 214
2026-06-19T05:28:32.4729473Z             }
2026-06-19T05:28:32.4729583Z           ]
2026-06-19T05:28:32.4729692Z         }
2026-06-19T05:28:32.4729802Z       }
2026-06-19T05:28:32.4729903Z     },
2026-06-19T05:28:32.4730011Z     {
2026-06-19T05:28:32.4730117Z       "id": "REQ-INST-8",
2026-06-19T05:28:32.4730293Z       "title": "Remote-control mode distinct from local operation",
2026-06-19T05:28:32.4730420Z       "requiredStages": [
2026-06-19T05:28:32.4730520Z         "impl",
2026-06-19T05:28:32.4730633Z         "unit",
2026-06-19T05:28:32.4730742Z         "int"
2026-06-19T05:28:32.4730838Z       ],
2026-06-19T05:28:32.4730948Z       "stages": {
2026-06-19T05:28:32.4731057Z         "doc": {
2026-06-19T05:28:32.4731182Z           "complete": false,
2026-06-19T05:28:32.4731291Z           "evidence": []
2026-06-19T05:28:32.4731396Z         },
2026-06-19T05:28:32.4731496Z         "impl": {
2026-06-19T05:28:32.4731620Z           "complete": true,
2026-06-19T05:28:32.4731730Z           "evidence": [
2026-06-19T05:28:32.4731830Z             {
2026-06-19T05:28:32.4731977Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:28:32.4732083Z               "line": 104
2026-06-19T05:28:32.4732188Z             },
2026-06-19T05:28:32.4732287Z             {
2026-06-19T05:28:32.4732436Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:28:32.4732540Z               "line": 321
2026-06-19T05:28:32.4732645Z             },
2026-06-19T05:28:32.4732751Z             {
2026-06-19T05:28:32.4732893Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:28:32.4733009Z               "line": 361
2026-06-19T05:28:32.4733099Z             },
2026-06-19T05:28:32.4733202Z             {
2026-06-19T05:28:32.4733475Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:28:32.4733573Z               "line": 62
2026-06-19T05:28:32.4733670Z             }
2026-06-19T05:28:32.4733769Z           ]
2026-06-19T05:28:32.4733874Z         },
2026-06-19T05:28:32.4733980Z         "int": {
2026-06-19T05:28:32.4734108Z           "complete": true,
2026-06-19T05:28:32.4734314Z           "evidence": [
2026-06-19T05:28:32.4734418Z             {
2026-06-19T05:28:32.4734580Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.4734691Z               "line": 415
2026-06-19T05:28:32.4734800Z             },
2026-06-19T05:28:32.4734890Z             {
2026-06-19T05:28:32.4735048Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.4735166Z               "line": 1027
2026-06-19T05:28:32.4735263Z             }
2026-06-19T05:28:32.4735367Z           ]
2026-06-19T05:28:32.4735471Z         },
2026-06-19T05:28:32.4735576Z         "unit": {
2026-06-19T05:28:32.4735689Z           "complete": true,
2026-06-19T05:28:32.4735802Z           "evidence": [
2026-06-19T05:28:32.4735916Z             {
2026-06-19T05:28:32.4736069Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.4736188Z               "line": 365
2026-06-19T05:28:32.4736284Z             },
2026-06-19T05:28:32.4736389Z             {
2026-06-19T05:28:32.4736546Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.4736665Z               "line": 630
2026-06-19T05:28:32.4736770Z             },
2026-06-19T05:28:32.4736866Z             {
2026-06-19T05:28:32.4737019Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:28:32.4737127Z               "line": 116
2026-06-19T05:28:32.4737234Z             },
2026-06-19T05:28:32.4737333Z             {
2026-06-19T05:28:32.4737481Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:28:32.4737586Z               "line": 160
2026-06-19T05:28:32.4737686Z             }
2026-06-19T05:28:32.4737796Z           ]
2026-06-19T05:28:32.4737896Z         }
2026-06-19T05:28:32.4738000Z       }
2026-06-19T05:28:32.4738101Z     },
2026-06-19T05:28:32.4738207Z     {
2026-06-19T05:28:32.4738319Z       "id": "REQ-INST-9",
2026-06-19T05:28:32.4738533Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-19T05:28:32.4738660Z       "requiredStages": [
2026-06-19T05:28:32.4738765Z         "impl",
2026-06-19T05:28:32.4738870Z         "unit"
2026-06-19T05:28:32.4739045Z       ],
2026-06-19T05:28:32.4739151Z       "stages": {
2026-06-19T05:28:32.4739261Z         "doc": {
2026-06-19T05:28:32.4739379Z           "complete": false,
2026-06-19T05:28:32.4739485Z           "evidence": []
2026-06-19T05:28:32.4739585Z         },
2026-06-19T05:28:32.4739689Z         "impl": {
2026-06-19T05:28:32.4739795Z           "complete": true,
2026-06-19T05:28:32.4739919Z           "evidence": [
2026-06-19T05:28:32.4740018Z             {
2026-06-19T05:28:32.4740162Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4740271Z               "line": 449
2026-06-19T05:28:32.4740372Z             }
2026-06-19T05:28:32.4740482Z           ]
2026-06-19T05:28:32.4740581Z         },
2026-06-19T05:28:32.4740682Z         "int": {
2026-06-19T05:28:32.4740801Z           "complete": false,
2026-06-19T05:28:32.4740909Z           "evidence": []
2026-06-19T05:28:32.4741023Z         },
2026-06-19T05:28:32.4741128Z         "unit": {
2026-06-19T05:28:32.4741245Z           "complete": true,
2026-06-19T05:28:32.4741350Z           "evidence": [
2026-06-19T05:28:32.4741447Z             {
2026-06-19T05:28:32.4741598Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4741713Z               "line": 1397
2026-06-19T05:28:32.4741818Z             },
2026-06-19T05:28:32.4741917Z             {
2026-06-19T05:28:32.4742061Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4742171Z               "line": 1406
2026-06-19T05:28:32.4742280Z             },
2026-06-19T05:28:32.4742490Z             {
2026-06-19T05:28:32.4742634Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4742752Z               "line": 1422
2026-06-19T05:28:32.4742848Z             },
2026-06-19T05:28:32.4742959Z             {
2026-06-19T05:28:32.4743095Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4743311Z               "line": 1434
2026-06-19T05:28:32.4743415Z             },
2026-06-19T05:28:32.4743510Z             {
2026-06-19T05:28:32.4743659Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.4743762Z               "line": 1454
2026-06-19T05:28:32.4743867Z             }
2026-06-19T05:28:32.4743973Z           ]
2026-06-19T05:28:32.4744082Z         }
2026-06-19T05:28:32.4744191Z       }
2026-06-19T05:28:32.4744288Z     },
2026-06-19T05:28:32.4744397Z     {
2026-06-19T05:28:32.4744506Z       "id": "REQ-INSTALL-1",
2026-06-19T05:28:32.4744730Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-19T05:28:32.4744864Z       "requiredStages": [
2026-06-19T05:28:32.4744964Z         "doc",
2026-06-19T05:28:32.4745064Z         "impl",
2026-06-19T05:28:32.4745169Z         "int"
2026-06-19T05:28:32.4745279Z       ],
2026-06-19T05:28:32.4745388Z       "stages": {
2026-06-19T05:28:32.4745494Z         "doc": {
2026-06-19T05:28:32.4745613Z           "complete": true,
2026-06-19T05:28:32.4745731Z           "evidence": [
2026-06-19T05:28:32.4745837Z             {
2026-06-19T05:28:32.4745960Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4746074Z               "line": 751
2026-06-19T05:28:32.4746178Z             }
2026-06-19T05:28:32.4746282Z           ]
2026-06-19T05:28:32.4746381Z         },
2026-06-19T05:28:32.4746491Z         "impl": {
2026-06-19T05:28:32.4746615Z           "complete": true,
2026-06-19T05:28:32.4746715Z           "evidence": [
2026-06-19T05:28:32.4746810Z             {
2026-06-19T05:28:32.4746940Z               "path": "installer/install.ps1",
2026-06-19T05:28:32.4747058Z               "line": 57
2026-06-19T05:28:32.4747160Z             },
2026-06-19T05:28:32.4747269Z             {
2026-06-19T05:28:32.4747397Z               "path": "installer/install.sh",
2026-06-19T05:28:32.4747507Z               "line": 52
2026-06-19T05:28:32.4747611Z             }
2026-06-19T05:28:32.4747716Z           ]
2026-06-19T05:28:32.4747818Z         },
2026-06-19T05:28:32.4747931Z         "int": {
2026-06-19T05:28:32.4748056Z           "complete": true,
2026-06-19T05:28:32.4748156Z           "evidence": [
2026-06-19T05:28:32.4748260Z             {
2026-06-19T05:28:32.4748414Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-19T05:28:32.4748522Z               "line": 21
2026-06-19T05:28:32.4748627Z             }
2026-06-19T05:28:32.4748729Z           ]
2026-06-19T05:28:32.4748832Z         },
2026-06-19T05:28:32.4749026Z         "unit": {
2026-06-19T05:28:32.4749140Z           "complete": false,
2026-06-19T05:28:32.4749253Z           "evidence": []
2026-06-19T05:28:32.4749348Z         }
2026-06-19T05:28:32.4749454Z       }
2026-06-19T05:28:32.4749553Z     },
2026-06-19T05:28:32.4749654Z     {
2026-06-19T05:28:32.4749773Z       "id": "REQ-INSTALL-10",
2026-06-19T05:28:32.4751208Z       "title": "Windows at-logon autostart runs the daemon in the background with no persistent window: the scheduled task launches `spt daemon start` (which spawn_detaches a console-less DETACHED_PROCESS daemon and exits) rather than the foreground `spt daemon run` — Task Scheduler's interactive ONLOGON launch of a long-lived console process otherwise leaves a visible console window for the daemon's whole lifetime (v0.7.4)",
2026-06-19T05:28:32.4751342Z       "requiredStages": [
2026-06-19T05:28:32.4751441Z         "impl",
2026-06-19T05:28:32.4751555Z         "unit"
2026-06-19T05:28:32.4751655Z       ],
2026-06-19T05:28:32.4751763Z       "stages": {
2026-06-19T05:28:32.4751862Z         "doc": {
2026-06-19T05:28:32.4751983Z           "complete": false,
2026-06-19T05:28:32.4752097Z           "evidence": []
2026-06-19T05:28:32.4752555Z         },
2026-06-19T05:28:32.4752669Z         "impl": {
2026-06-19T05:28:32.4752792Z           "complete": true,
2026-06-19T05:28:32.4752889Z           "evidence": [
2026-06-19T05:28:32.4752993Z             {
2026-06-19T05:28:32.4753121Z               "path": "installer/install.ps1",
2026-06-19T05:28:32.4753242Z               "line": 191
2026-06-19T05:28:32.4753455Z             }
2026-06-19T05:28:32.4753561Z           ]
2026-06-19T05:28:32.4753670Z         },
2026-06-19T05:28:32.4753770Z         "int": {
2026-06-19T05:28:32.4753895Z           "complete": false,
2026-06-19T05:28:32.4754003Z           "evidence": []
2026-06-19T05:28:32.4754110Z         },
2026-06-19T05:28:32.4754205Z         "unit": {
2026-06-19T05:28:32.4754318Z           "complete": true,
2026-06-19T05:28:32.4754432Z           "evidence": [
2026-06-19T05:28:32.4754528Z             {
2026-06-19T05:28:32.4754675Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-19T05:28:32.4754790Z               "line": 211
2026-06-19T05:28:32.4754890Z             }
2026-06-19T05:28:32.4754990Z           ]
2026-06-19T05:28:32.4755090Z         }
2026-06-19T05:28:32.4755195Z       }
2026-06-19T05:28:32.4755295Z     },
2026-06-19T05:28:32.4755400Z     {
2026-06-19T05:28:32.4755515Z       "id": "REQ-INSTALL-11",
2026-06-19T05:28:32.4757466Z       "title": "Adapter command templates resolve their program against the adapter's install dir BEFORE PATH: a `.spt`-shipped binary (dropped to adapters/_github/<safe>/ by --release/--github acquisition, or kept in the source_dir under copy-mode where only manifest+strings/ are copied to adapters/<name>) runs without any PATH placement — a bare-name template token (e.g. `claude-spt-digest ...`) is rewritten to <install_dir>/<program>(.exe on Windows) when that file exists, else left bare for the PATH fallback. Makes a `.spt` self-contained (closes the --release bundled-binary gap perri confirmed) (v0.7.4)",
2026-06-19T05:28:32.4757609Z       "requiredStages": [
2026-06-19T05:28:32.4757729Z         "doc",
2026-06-19T05:28:32.4757838Z         "impl",
2026-06-19T05:28:32.4757938Z         "unit"
2026-06-19T05:28:32.4758039Z       ],
2026-06-19T05:28:32.4758144Z       "stages": {
2026-06-19T05:28:32.4758253Z         "doc": {
2026-06-19T05:28:32.4758368Z           "complete": true,
2026-06-19T05:28:32.4758477Z           "evidence": [
2026-06-19T05:28:32.4758596Z             {
2026-06-19T05:28:32.4758721Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4758834Z               "line": 138
2026-06-19T05:28:32.4759031Z             },
2026-06-19T05:28:32.4759130Z             {
2026-06-19T05:28:32.4759265Z               "path": "docs/MANIFEST.md",
2026-06-19T05:28:32.4759369Z               "line": 82
2026-06-19T05:28:32.4759472Z             }
2026-06-19T05:28:32.4759573Z           ]
2026-06-19T05:28:32.4759682Z         },
2026-06-19T05:28:32.4759780Z         "impl": {
2026-06-19T05:28:32.4759895Z           "complete": true,
2026-06-19T05:28:32.4760019Z           "evidence": [
2026-06-19T05:28:32.4760132Z             {
2026-06-19T05:28:32.4760282Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.4760390Z               "line": 223
2026-06-19T05:28:32.4760495Z             },
2026-06-19T05:28:32.4760601Z             {
2026-06-19T05:28:32.4760747Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4760858Z               "line": 99
2026-06-19T05:28:32.4760953Z             },
2026-06-19T05:28:32.4761057Z             {
2026-06-19T05:28:32.4761202Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.4761310Z               "line": 117
2026-06-19T05:28:32.4761415Z             },
2026-06-19T05:28:32.4761521Z             {
2026-06-19T05:28:32.4761668Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-19T05:28:32.4761773Z               "line": 332
2026-06-19T05:28:32.4761875Z             },
2026-06-19T05:28:32.4761977Z             {
2026-06-19T05:28:32.4762120Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:28:32.4762342Z               "line": 88
2026-06-19T05:28:32.4762437Z             },
2026-06-19T05:28:32.4762538Z             {
2026-06-19T05:28:32.4762685Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:28:32.4762790Z               "line": 104
2026-06-19T05:28:32.4762895Z             },
2026-06-19T05:28:32.4762995Z             {
2026-06-19T05:28:32.4763262Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4763371Z               "line": 297
2026-06-19T05:28:32.4763478Z             },
2026-06-19T05:28:32.4763577Z             {
2026-06-19T05:28:32.4763730Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4763849Z               "line": 332
2026-06-19T05:28:32.4763949Z             },
2026-06-19T05:28:32.4764045Z             {
2026-06-19T05:28:32.4764177Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4764297Z               "line": 523
2026-06-19T05:28:32.4764389Z             },
2026-06-19T05:28:32.4764497Z             {
2026-06-19T05:28:32.4764650Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4764756Z               "line": 546
2026-06-19T05:28:32.4764859Z             },
2026-06-19T05:28:32.4764963Z             {
2026-06-19T05:28:32.4765112Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4765226Z               "line": 561
2026-06-19T05:28:32.4765335Z             },
2026-06-19T05:28:32.4765441Z             {
2026-06-19T05:28:32.4765569Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.4765680Z               "line": 492
2026-06-19T05:28:32.4765784Z             }
2026-06-19T05:28:32.4765884Z           ]
2026-06-19T05:28:32.4765989Z         },
2026-06-19T05:28:32.4766104Z         "int": {
2026-06-19T05:28:32.4766227Z           "complete": false,
2026-06-19T05:28:32.4766333Z           "evidence": []
2026-06-19T05:28:32.4766442Z         },
2026-06-19T05:28:32.4766546Z         "unit": {
2026-06-19T05:28:32.4766671Z           "complete": true,
2026-06-19T05:28:32.4766780Z           "evidence": [
2026-06-19T05:28:32.4766890Z             {
2026-06-19T05:28:32.4767048Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4767160Z               "line": 799
2026-06-19T05:28:32.4767265Z             },
2026-06-19T05:28:32.4767365Z             {
2026-06-19T05:28:32.4767525Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4767635Z               "line": 811
2026-06-19T05:28:32.4767740Z             },
2026-06-19T05:28:32.4767844Z             {
2026-06-19T05:28:32.4767984Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.4768102Z               "line": 820
2026-06-19T05:28:32.4768202Z             }
2026-06-19T05:28:32.4768304Z           ]
2026-06-19T05:28:32.4768407Z         }
2026-06-19T05:28:32.4768517Z       }
2026-06-19T05:28:32.4768618Z     },
2026-06-19T05:28:32.4768708Z     {
2026-06-19T05:28:32.4768837Z       "id": "REQ-INSTALL-12",
2026-06-19T05:28:32.4771570Z       "title": "Durable active-profile pointer for bind-time profile selection (ADR-0021): adapters/active-profiles.toml at the registry ROOT (sibling to the per-adapter <name>/ dirs, so adapter add/update/remove — which only rewrite a <name>/ subdir — can never clobber it), a flat host_binary → \"adapter[:profile]\" map. Read at bind as the PRIMARY profile selector; unset → the registered_at_ms fallback (REQ-START-5). Written ONLY by `spt adapter use <adapter>[:profile]` (resolves the adapter's host_binaries → sets each binary→adapter[:profile]); `spt adapter use --clear <adapter|binary>` drops. NEVER auto-written by install/update/adapter add (that is precisely what would let an update silently flip the active profile). A stale pointer (uninstalled adapter / deleted profile) self-heals: ignored, fall back, warn once. Pruned on adapter remove. Atomic write (spt_store atomic). (v0.9.0)",
2026-06-19T05:28:32.4771723Z       "requiredStages": [
2026-06-19T05:28:32.4771961Z         "doc",
2026-06-19T05:28:32.4772058Z         "impl",
2026-06-19T05:28:32.4772167Z         "unit",
2026-06-19T05:28:32.4772266Z         "int"
2026-06-19T05:28:32.4772368Z       ],
2026-06-19T05:28:32.4772482Z       "stages": {
2026-06-19T05:28:32.4772580Z         "doc": {
2026-06-19T05:28:32.4772699Z           "complete": true,
2026-06-19T05:28:32.4772808Z           "evidence": [
2026-06-19T05:28:32.4773017Z             {
2026-06-19T05:28:32.4773151Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4773255Z               "line": 185
2026-06-19T05:28:32.4773365Z             }
2026-06-19T05:28:32.4773465Z           ]
2026-06-19T05:28:32.4773574Z         },
2026-06-19T05:28:32.4773680Z         "impl": {
2026-06-19T05:28:32.4773799Z           "complete": true,
2026-06-19T05:28:32.4773903Z           "evidence": [
2026-06-19T05:28:32.4773995Z             {
2026-06-19T05:28:32.4774156Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.4774261Z               "line": 27
2026-06-19T05:28:32.4774367Z             },
2026-06-19T05:28:32.4774457Z             {
2026-06-19T05:28:32.4774605Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.4774728Z               "line": 223
2026-06-19T05:28:32.4774828Z             },
2026-06-19T05:28:32.4774934Z             {
2026-06-19T05:28:32.4775071Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4775191Z               "line": 5534
2026-06-19T05:28:32.4775292Z             }
2026-06-19T05:28:32.4775400Z           ]
2026-06-19T05:28:32.4775504Z         },
2026-06-19T05:28:32.4775610Z         "int": {
2026-06-19T05:28:32.4775729Z           "complete": true,
2026-06-19T05:28:32.4775833Z           "evidence": [
2026-06-19T05:28:32.4775939Z             {
2026-06-19T05:28:32.4776091Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-19T05:28:32.4776210Z               "line": 19
2026-06-19T05:28:32.4776315Z             }
2026-06-19T05:28:32.4776415Z           ]
2026-06-19T05:28:32.4776525Z         },
2026-06-19T05:28:32.4776625Z         "unit": {
2026-06-19T05:28:32.4776739Z           "complete": true,
2026-06-19T05:28:32.4776849Z           "evidence": [
2026-06-19T05:28:32.4776955Z             {
2026-06-19T05:28:32.4777116Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.4777232Z               "line": 395
2026-06-19T05:28:32.4777345Z             },
2026-06-19T05:28:32.4777445Z             {
2026-06-19T05:28:32.4777598Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.4777706Z               "line": 421
2026-06-19T05:28:32.4777816Z             },
2026-06-19T05:28:32.4777925Z             {
2026-06-19T05:28:32.4778071Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.4778190Z               "line": 440
2026-06-19T05:28:32.4778295Z             },
2026-06-19T05:28:32.4778404Z             {
2026-06-19T05:28:32.4778549Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.4778667Z               "line": 475
2026-06-19T05:28:32.4778772Z             },
2026-06-19T05:28:32.4778873Z             {
2026-06-19T05:28:32.4779092Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4779207Z               "line": 8470
2026-06-19T05:28:32.4779311Z             }
2026-06-19T05:28:32.4779406Z           ]
2026-06-19T05:28:32.4779512Z         }
2026-06-19T05:28:32.4779621Z       }
2026-06-19T05:28:32.4779726Z     },
2026-06-19T05:28:32.4779827Z     {
2026-06-19T05:28:32.4779946Z       "id": "REQ-INSTALL-2",
2026-06-19T05:28:32.4780118Z       "title": "Marketplace-repackaging-friendly install",
2026-06-19T05:28:32.4780240Z       "requiredStages": [
2026-06-19T05:28:32.4780351Z         "doc"
2026-06-19T05:28:32.4780452Z       ],
2026-06-19T05:28:32.4780560Z       "stages": {
2026-06-19T05:28:32.4780659Z         "doc": {
2026-06-19T05:28:32.4780774Z           "complete": true,
2026-06-19T05:28:32.4780891Z           "evidence": [
2026-06-19T05:28:32.4780995Z             {
2026-06-19T05:28:32.4781233Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4781344Z               "line": 752
2026-06-19T05:28:32.4781453Z             }
2026-06-19T05:28:32.4781558Z           ]
2026-06-19T05:28:32.4781659Z         },
2026-06-19T05:28:32.4781764Z         "impl": {
2026-06-19T05:28:32.4781873Z           "complete": false,
2026-06-19T05:28:32.4781993Z           "evidence": []
2026-06-19T05:28:32.4782192Z         },
2026-06-19T05:28:32.4782298Z         "int": {
2026-06-19T05:28:32.4782417Z           "complete": false,
2026-06-19T05:28:32.4782526Z           "evidence": []
2026-06-19T05:28:32.4782632Z         },
2026-06-19T05:28:32.4782736Z         "unit": {
2026-06-19T05:28:32.4782860Z           "complete": false,
2026-06-19T05:28:32.4782976Z           "evidence": []
2026-06-19T05:28:32.4783075Z         }
2026-06-19T05:28:32.4783183Z       }
2026-06-19T05:28:32.4783283Z     },
2026-06-19T05:28:32.4783387Z     {
2026-06-19T05:28:32.4783510Z       "id": "REQ-INSTALL-3",
2026-06-19T05:28:32.4783682Z       "title": "Idempotent + interactive-optional first run",
2026-06-19T05:28:32.4783805Z       "requiredStages": [
2026-06-19T05:28:32.4783911Z         "impl",
2026-06-19T05:28:32.4784015Z         "int"
2026-06-19T05:28:32.4784115Z       ],
2026-06-19T05:28:32.4784221Z       "stages": {
2026-06-19T05:28:32.4784325Z         "doc": {
2026-06-19T05:28:32.4784449Z           "complete": false,
2026-06-19T05:28:32.4784574Z           "evidence": []
2026-06-19T05:28:32.4784678Z         },
2026-06-19T05:28:32.4784792Z         "impl": {
2026-06-19T05:28:32.4784908Z           "complete": true,
2026-06-19T05:28:32.4785022Z           "evidence": [
2026-06-19T05:28:32.4785131Z             {
2026-06-19T05:28:32.4785275Z               "path": "installer/install.ps1",
2026-06-19T05:28:32.4785393Z               "line": 100
2026-06-19T05:28:32.4785490Z             },
2026-06-19T05:28:32.4785599Z             {
2026-06-19T05:28:32.4785722Z               "path": "installer/install.ps1",
2026-06-19T05:28:32.4785843Z               "line": 111
2026-06-19T05:28:32.4785946Z             },
2026-06-19T05:28:32.4786055Z             {
2026-06-19T05:28:32.4786194Z               "path": "installer/install.sh",
2026-06-19T05:28:32.4786303Z               "line": 79
2026-06-19T05:28:32.4786412Z             }
2026-06-19T05:28:32.4786514Z           ]
2026-06-19T05:28:32.4786618Z         },
2026-06-19T05:28:32.4786722Z         "int": {
2026-06-19T05:28:32.4786847Z           "complete": true,
2026-06-19T05:28:32.4786966Z           "evidence": [
2026-06-19T05:28:32.4787071Z             {
2026-06-19T05:28:32.4787214Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-19T05:28:32.4787323Z               "line": 167
2026-06-19T05:28:32.4787429Z             }
2026-06-19T05:28:32.4787524Z           ]
2026-06-19T05:28:32.4787624Z         },
2026-06-19T05:28:32.4787730Z         "unit": {
2026-06-19T05:28:32.4787848Z           "complete": false,
2026-06-19T05:28:32.4787967Z           "evidence": []
2026-06-19T05:28:32.4788068Z         }
2026-06-19T05:28:32.4788173Z       }
2026-06-19T05:28:32.4788276Z     },
2026-06-19T05:28:32.4788385Z     {
2026-06-19T05:28:32.4788508Z       "id": "REQ-INSTALL-4",
2026-06-19T05:28:32.4789556Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-19T05:28:32.4789686Z       "requiredStages": [
2026-06-19T05:28:32.4789791Z         "impl",
2026-06-19T05:28:32.4789895Z         "unit"
2026-06-19T05:28:32.4790001Z       ],
2026-06-19T05:28:32.4790105Z       "stages": {
2026-06-19T05:28:32.4790205Z         "doc": {
2026-06-19T05:28:32.4790326Z           "complete": false,
2026-06-19T05:28:32.4790439Z           "evidence": []
2026-06-19T05:28:32.4790539Z         },
2026-06-19T05:28:32.4790650Z         "impl": {
2026-06-19T05:28:32.4790753Z           "complete": true,
2026-06-19T05:28:32.4790868Z           "evidence": [
2026-06-19T05:28:32.4791096Z             {
2026-06-19T05:28:32.4791267Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.4791376Z               "line": 165
2026-06-19T05:28:32.4791479Z             },
2026-06-19T05:28:32.4791584Z             {
2026-06-19T05:28:32.4791728Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4791841Z               "line": 29
2026-06-19T05:28:32.4792048Z             },
2026-06-19T05:28:32.4792146Z             {
2026-06-19T05:28:32.4792305Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4792409Z               "line": 288
2026-06-19T05:28:32.4792519Z             },
2026-06-19T05:28:32.4792620Z             {
2026-06-19T05:28:32.4792781Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4792887Z               "line": 356
2026-06-19T05:28:32.4792982Z             },
2026-06-19T05:28:32.4793086Z             {
2026-06-19T05:28:32.4793230Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4793343Z               "line": 386
2026-06-19T05:28:32.4793449Z             },
2026-06-19T05:28:32.4793550Z             {
2026-06-19T05:28:32.4793705Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4793815Z               "line": 434
2026-06-19T05:28:32.4793924Z             },
2026-06-19T05:28:32.4794027Z             {
2026-06-19T05:28:32.4794165Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4794272Z               "line": 5253
2026-06-19T05:28:32.4794375Z             }
2026-06-19T05:28:32.4794485Z           ]
2026-06-19T05:28:32.4794585Z         },
2026-06-19T05:28:32.4794684Z         "int": {
2026-06-19T05:28:32.4794791Z           "complete": false,
2026-06-19T05:28:32.4794909Z           "evidence": []
2026-06-19T05:28:32.4795018Z         },
2026-06-19T05:28:32.4795124Z         "unit": {
2026-06-19T05:28:32.4795238Z           "complete": true,
2026-06-19T05:28:32.4795348Z           "evidence": [
2026-06-19T05:28:32.4795468Z             {
2026-06-19T05:28:32.4795629Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.4795740Z               "line": 375
2026-06-19T05:28:32.4795849Z             },
2026-06-19T05:28:32.4795953Z             {
2026-06-19T05:28:32.4796107Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4796215Z               "line": 808
2026-06-19T05:28:32.4796335Z             },
2026-06-19T05:28:32.4796436Z             {
2026-06-19T05:28:32.4796591Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4796706Z               "line": 849
2026-06-19T05:28:32.4796807Z             },
2026-06-19T05:28:32.4796906Z             {
2026-06-19T05:28:32.4797049Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4797164Z               "line": 869
2026-06-19T05:28:32.4797268Z             },
2026-06-19T05:28:32.4797374Z             {
2026-06-19T05:28:32.4797503Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4797626Z               "line": 8208
2026-06-19T05:28:32.4797732Z             }
2026-06-19T05:28:32.4797836Z           ]
2026-06-19T05:28:32.4797940Z         }
2026-06-19T05:28:32.4798047Z       }
2026-06-19T05:28:32.4798151Z     },
2026-06-19T05:28:32.4798255Z     {
2026-06-19T05:28:32.4798366Z       "id": "REQ-INSTALL-5",
2026-06-19T05:28:32.4798879Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-19T05:28:32.4799068Z       "requiredStages": [
2026-06-19T05:28:32.4799186Z         "impl",
2026-06-19T05:28:32.4799292Z         "int"
2026-06-19T05:28:32.4799402Z       ],
2026-06-19T05:28:32.4799506Z       "stages": {
2026-06-19T05:28:32.4799611Z         "doc": {
2026-06-19T05:28:32.4799735Z           "complete": false,
2026-06-19T05:28:32.4799839Z           "evidence": []
2026-06-19T05:28:32.4799937Z         },
2026-06-19T05:28:32.4800159Z         "impl": {
2026-06-19T05:28:32.4800275Z           "complete": true,
2026-06-19T05:28:32.4800393Z           "evidence": [
2026-06-19T05:28:32.4800498Z             {
2026-06-19T05:28:32.4800641Z               "path": "installer/install.ps1",
2026-06-19T05:28:32.4800746Z               "line": 5
2026-06-19T05:28:32.4800851Z             },
2026-06-19T05:28:32.4800951Z             {
2026-06-19T05:28:32.4801181Z               "path": "installer/install.sh",
2026-06-19T05:28:32.4801285Z               "line": 6
2026-06-19T05:28:32.4801385Z             }
2026-06-19T05:28:32.4801486Z           ]
2026-06-19T05:28:32.4801591Z         },
2026-06-19T05:28:32.4801694Z         "int": {
2026-06-19T05:28:32.4801799Z           "complete": true,
2026-06-19T05:28:32.4801908Z           "evidence": [
2026-06-19T05:28:32.4802006Z             {
2026-06-19T05:28:32.4802159Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-19T05:28:32.4802269Z               "line": 22
2026-06-19T05:28:32.4802373Z             }
2026-06-19T05:28:32.4802489Z           ]
2026-06-19T05:28:32.4802584Z         },
2026-06-19T05:28:32.4802692Z         "unit": {
2026-06-19T05:28:32.4802804Z           "complete": false,
2026-06-19T05:28:32.4802917Z           "evidence": []
2026-06-19T05:28:32.4803026Z         }
2026-06-19T05:28:32.4803128Z       }
2026-06-19T05:28:32.4803227Z     },
2026-06-19T05:28:32.4803327Z     {
2026-06-19T05:28:32.4803461Z       "id": "REQ-INSTALL-6",
2026-06-19T05:28:32.4804711Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-19T05:28:32.4804832Z       "requiredStages": [
2026-06-19T05:28:32.4804939Z         "impl",
2026-06-19T05:28:32.4805045Z         "unit"
2026-06-19T05:28:32.4805155Z       ],
2026-06-19T05:28:32.4805268Z       "stages": {
2026-06-19T05:28:32.4805370Z         "doc": {
2026-06-19T05:28:32.4805484Z           "complete": false,
2026-06-19T05:28:32.4805593Z           "evidence": []
2026-06-19T05:28:32.4805689Z         },
2026-06-19T05:28:32.4805793Z         "impl": {
2026-06-19T05:28:32.4805912Z           "complete": true,
2026-06-19T05:28:32.4806038Z           "evidence": [
2026-06-19T05:28:32.4806171Z             {
2026-06-19T05:28:32.4806528Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4806819Z               "line": 61
2026-06-19T05:28:32.4807048Z             },
2026-06-19T05:28:32.4807261Z             {
2026-06-19T05:28:32.4807509Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.4807785Z               "line": 623
2026-06-19T05:28:32.4808019Z             },
2026-06-19T05:28:32.4808230Z             {
2026-06-19T05:28:32.4808472Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4808772Z               "line": 191
2026-06-19T05:28:32.4813463Z             },
2026-06-19T05:28:32.4813711Z             {
2026-06-19T05:28:32.4813973Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4814279Z               "line": 276
2026-06-19T05:28:32.4814507Z             },
2026-06-19T05:28:32.4814708Z             {
2026-06-19T05:28:32.4814969Z               "path": "crates/spt/src/main.rs",
2026-06-19T05:28:32.4815252Z               "line": 43
2026-06-19T05:28:32.4815476Z             },
2026-06-19T05:28:32.4815692Z             {
2026-06-19T05:28:32.4815930Z               "path": "installer/install.sh",
2026-06-19T05:28:32.4816221Z               "line": 104
2026-06-19T05:28:32.4816444Z             }
2026-06-19T05:28:32.4816683Z           ]
2026-06-19T05:28:32.4816894Z         },
2026-06-19T05:28:32.4817097Z         "int": {
2026-06-19T05:28:32.4817326Z           "complete": false,
2026-06-19T05:28:32.4817571Z           "evidence": []
2026-06-19T05:28:32.4817951Z         },
2026-06-19T05:28:32.4818156Z         "unit": {
2026-06-19T05:28:32.4818379Z           "complete": true,
2026-06-19T05:28:32.4818619Z           "evidence": [
2026-06-19T05:28:32.4818852Z             {
2026-06-19T05:28:32.4819181Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-19T05:28:32.4819487Z               "line": 894
2026-06-19T05:28:32.4819867Z             }
2026-06-19T05:28:32.4820080Z           ]
2026-06-19T05:28:32.4820274Z         }
2026-06-19T05:28:32.4820470Z       }
2026-06-19T05:28:32.4820664Z     },
2026-06-19T05:28:32.4820861Z     {
2026-06-19T05:28:32.4821071Z       "id": "REQ-INSTALL-7",
2026-06-19T05:28:32.4822410Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-19T05:28:32.4823546Z       "requiredStages": [
2026-06-19T05:28:32.4823779Z         "impl"
2026-06-19T05:28:32.4823971Z       ],
2026-06-19T05:28:32.4824165Z       "stages": {
2026-06-19T05:28:32.4824381Z         "doc": {
2026-06-19T05:28:32.4824601Z           "complete": false,
2026-06-19T05:28:32.4824844Z           "evidence": []
2026-06-19T05:28:32.4825077Z         },
2026-06-19T05:28:32.4825282Z         "impl": {
2026-06-19T05:28:32.4825504Z           "complete": true,
2026-06-19T05:28:32.4825740Z           "evidence": [
2026-06-19T05:28:32.4825980Z             {
2026-06-19T05:28:32.4826218Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4826491Z               "line": 3796
2026-06-19T05:28:32.4826713Z             },
2026-06-19T05:28:32.4826942Z             {
2026-06-19T05:28:32.4827195Z               "path": "installer/install.ps1",
2026-06-19T05:28:32.4827477Z               "line": 157
2026-06-19T05:28:32.4827701Z             }
2026-06-19T05:28:32.4827934Z           ]
2026-06-19T05:28:32.4828136Z         },
2026-06-19T05:28:32.4828338Z         "int": {
2026-06-19T05:28:32.4828558Z           "complete": false,
2026-06-19T05:28:32.4828806Z           "evidence": []
2026-06-19T05:28:32.4829098Z         },
2026-06-19T05:28:32.4829302Z         "unit": {
2026-06-19T05:28:32.4829512Z           "complete": false,
2026-06-19T05:28:32.4829756Z           "evidence": []
2026-06-19T05:28:32.4829980Z         }
2026-06-19T05:28:32.4830174Z       }
2026-06-19T05:28:32.4830371Z     },
2026-06-19T05:28:32.4830555Z     {
2026-06-19T05:28:32.4830754Z       "id": "REQ-INSTALL-8",
2026-06-19T05:28:32.4831970Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-19T05:28:32.4833152Z       "requiredStages": [
2026-06-19T05:28:32.4833379Z         "impl"
2026-06-19T05:28:32.4833584Z       ],
2026-06-19T05:28:32.4833776Z       "stages": {
2026-06-19T05:28:32.4833987Z         "doc": {
2026-06-19T05:28:32.4834207Z           "complete": false,
2026-06-19T05:28:32.4834445Z           "evidence": []
2026-06-19T05:28:32.4834673Z         },
2026-06-19T05:28:32.4834865Z         "impl": {
2026-06-19T05:28:32.4835084Z           "complete": true,
2026-06-19T05:28:32.4835322Z           "evidence": [
2026-06-19T05:28:32.4835532Z             {
2026-06-19T05:28:32.4835762Z               "path": "installer/install.ps1",
2026-06-19T05:28:32.4836041Z               "line": 184
2026-06-19T05:28:32.4836263Z             },
2026-06-19T05:28:32.4836454Z             {
2026-06-19T05:28:32.4836673Z               "path": "installer/install.sh",
2026-06-19T05:28:32.4836954Z               "line": 121
2026-06-19T05:28:32.4837183Z             }
2026-06-19T05:28:32.4837517Z           ]
2026-06-19T05:28:32.4837723Z         },
2026-06-19T05:28:32.4837922Z         "int": {
2026-06-19T05:28:32.4838146Z           "complete": false,
2026-06-19T05:28:32.4838390Z           "evidence": []
2026-06-19T05:28:32.4838615Z         },
2026-06-19T05:28:32.4838813Z         "unit": {
2026-06-19T05:28:32.4839109Z           "complete": false,
2026-06-19T05:28:32.4839504Z           "evidence": []
2026-06-19T05:28:32.4839724Z         }
2026-06-19T05:28:32.4839915Z       }
2026-06-19T05:28:32.4840110Z     },
2026-06-19T05:28:32.4840301Z     {
2026-06-19T05:28:32.4840511Z       "id": "REQ-INSTALL-9",
2026-06-19T05:28:32.4841905Z       "title": "Adapter add from a GitHub release archive: `spt adapter add --release <user/repo> [--tag <tag>] [--asset <name>]` fetches a `.spt` tar asset over HTTPS+GitHub trust, extracts it to the durable adapters/_github home, and registers the root — ships built binaries source-free and versioned (the distribution path for an adapter whose dev repo is a monorepo subdir, where --github root-only clone does not fit)",
2026-06-19T05:28:32.4843102Z       "requiredStages": [
2026-06-19T05:28:32.4843325Z         "doc",
2026-06-19T05:28:32.4843531Z         "impl",
2026-06-19T05:28:32.4843736Z         "unit"
2026-06-19T05:28:32.4843929Z       ],
2026-06-19T05:28:32.4844120Z       "stages": {
2026-06-19T05:28:32.4844318Z         "doc": {
2026-06-19T05:28:32.4844561Z           "complete": true,
2026-06-19T05:28:32.4844800Z           "evidence": [
2026-06-19T05:28:32.4845015Z             {
2026-06-19T05:28:32.4845228Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4845481Z               "line": 768
2026-06-19T05:28:32.4845702Z             }
2026-06-19T05:28:32.4845891Z           ]
2026-06-19T05:28:32.4846083Z         },
2026-06-19T05:28:32.4846284Z         "impl": {
2026-06-19T05:28:32.4846501Z           "complete": true,
2026-06-19T05:28:32.4846738Z           "evidence": [
2026-06-19T05:28:32.4846951Z             {
2026-06-19T05:28:32.4847185Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4847461Z               "line": 2411
2026-06-19T05:28:32.4847677Z             },
2026-06-19T05:28:32.4847872Z             {
2026-06-19T05:28:32.4848101Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4848373Z               "line": 2435
2026-06-19T05:28:32.4848593Z             }
2026-06-19T05:28:32.4848797Z           ]
2026-06-19T05:28:32.4849064Z         },
2026-06-19T05:28:32.4849260Z         "int": {
2026-06-19T05:28:32.4849478Z           "complete": false,
2026-06-19T05:28:32.4849716Z           "evidence": []
2026-06-19T05:28:32.4849931Z         },
2026-06-19T05:28:32.4850131Z         "unit": {
2026-06-19T05:28:32.4850355Z           "complete": true,
2026-06-19T05:28:32.4850589Z           "evidence": [
2026-06-19T05:28:32.4850805Z             {
2026-06-19T05:28:32.4851023Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4851299Z               "line": 7448
2026-06-19T05:28:32.4851519Z             },
2026-06-19T05:28:32.4851722Z             {
2026-06-19T05:28:32.4851944Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4852203Z               "line": 8238
2026-06-19T05:28:32.4852431Z             }
2026-06-19T05:28:32.4852616Z           ]
2026-06-19T05:28:32.4852799Z         }
2026-06-19T05:28:32.4852984Z       }
2026-06-19T05:28:32.4853170Z     },
2026-06-19T05:28:32.4853362Z     {
2026-06-19T05:28:32.4853561Z       "id": "REQ-KICK-1",
2026-06-19T05:28:32.4856199Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-19T05:28:32.4858679Z       "requiredStages": [
2026-06-19T05:28:32.4859091Z         "doc",
2026-06-19T05:28:32.4859309Z         "impl",
2026-06-19T05:28:32.4859501Z         "unit",
2026-06-19T05:28:32.4859706Z         "int"
2026-06-19T05:28:32.4859909Z       ],
2026-06-19T05:28:32.4860120Z       "stages": {
2026-06-19T05:28:32.4860333Z         "doc": {
2026-06-19T05:28:32.4860544Z           "complete": true,
2026-06-19T05:28:32.4860782Z           "evidence": [
2026-06-19T05:28:32.4860992Z             {
2026-06-19T05:28:32.4861211Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4861483Z               "line": 342
2026-06-19T05:28:32.4861704Z             }
2026-06-19T05:28:32.4861917Z           ]
2026-06-19T05:28:32.4862098Z         },
2026-06-19T05:28:32.4862297Z         "impl": {
2026-06-19T05:28:32.4862510Z           "complete": true,
2026-06-19T05:28:32.4862734Z           "evidence": [
2026-06-19T05:28:32.4862943Z             {
2026-06-19T05:28:32.4863186Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:28:32.4863468Z               "line": 41
2026-06-19T05:28:32.4863688Z             },
2026-06-19T05:28:32.4863892Z             {
2026-06-19T05:28:32.4864112Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.4864383Z               "line": 181
2026-06-19T05:28:32.4864603Z             }
2026-06-19T05:28:32.4864798Z           ]
2026-06-19T05:28:32.4864994Z         },
2026-06-19T05:28:32.4865188Z         "int": {
2026-06-19T05:28:32.4865404Z           "complete": true,
2026-06-19T05:28:32.4865630Z           "evidence": [
2026-06-19T05:28:32.4865849Z             {
2026-06-19T05:28:32.4866101Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.4866391Z               "line": 910
2026-06-19T05:28:32.4866606Z             }
2026-06-19T05:28:32.4866808Z           ]
2026-06-19T05:28:32.4867002Z         },
2026-06-19T05:28:32.4867204Z         "unit": {
2026-06-19T05:28:32.4867419Z           "complete": true,
2026-06-19T05:28:32.4867660Z           "evidence": [
2026-06-19T05:28:32.4867882Z             {
2026-06-19T05:28:32.4868135Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:28:32.4868421Z               "line": 205
2026-06-19T05:28:32.4868639Z             }
2026-06-19T05:28:32.4868845Z           ]
2026-06-19T05:28:32.4869112Z         }
2026-06-19T05:28:32.4869316Z       }
2026-06-19T05:28:32.4869508Z     },
2026-06-19T05:28:32.4869704Z     {
2026-06-19T05:28:32.4869927Z       "id": "REQ-MANIFEST-1",
2026-06-19T05:28:32.4870276Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-19T05:28:32.4870641Z       "requiredStages": [
2026-06-19T05:28:32.4870870Z         "doc",
2026-06-19T05:28:32.4871081Z         "impl",
2026-06-19T05:28:32.4871281Z         "unit"
2026-06-19T05:28:32.4871480Z       ],
2026-06-19T05:28:32.4871676Z       "stages": {
2026-06-19T05:28:32.4871886Z         "doc": {
2026-06-19T05:28:32.4872109Z           "complete": true,
2026-06-19T05:28:32.4872343Z           "evidence": [
2026-06-19T05:28:32.4872559Z             {
2026-06-19T05:28:32.4872785Z               "path": "docs/MANIFEST.md",
2026-06-19T05:28:32.4873055Z               "line": 19
2026-06-19T05:28:32.4873275Z             }
2026-06-19T05:28:32.4873475Z           ]
2026-06-19T05:28:32.4873670Z         },
2026-06-19T05:28:32.4873862Z         "impl": {
2026-06-19T05:28:32.4874089Z           "complete": true,
2026-06-19T05:28:32.4874323Z           "evidence": [
2026-06-19T05:28:32.4874534Z             {
2026-06-19T05:28:32.4874772Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4875063Z               "line": 18
2026-06-19T05:28:32.4875286Z             }
2026-06-19T05:28:32.4875629Z           ]
2026-06-19T05:28:32.4875824Z         },
2026-06-19T05:28:32.4876027Z         "int": {
2026-06-19T05:28:32.4876252Z           "complete": false,
2026-06-19T05:28:32.4876490Z           "evidence": []
2026-06-19T05:28:32.4876710Z         },
2026-06-19T05:28:32.4876904Z         "unit": {
2026-06-19T05:28:32.4877124Z           "complete": true,
2026-06-19T05:28:32.4877472Z           "evidence": [
2026-06-19T05:28:32.4877688Z             {
2026-06-19T05:28:32.4877935Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4878224Z               "line": 970
2026-06-19T05:28:32.4878452Z             },
2026-06-19T05:28:32.4878656Z             {
2026-06-19T05:28:32.4878899Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4879262Z               "line": 1122
2026-06-19T05:28:32.4879499Z             },
2026-06-19T05:28:32.4879705Z             {
2026-06-19T05:28:32.4879954Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4880245Z               "line": 1134
2026-06-19T05:28:32.4880477Z             },
2026-06-19T05:28:32.4880668Z             {
2026-06-19T05:28:32.4880917Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4881206Z               "line": 1145
2026-06-19T05:28:32.4881420Z             },
2026-06-19T05:28:32.4881621Z             {
2026-06-19T05:28:32.4881870Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4882155Z               "line": 1162
2026-06-19T05:28:32.4882374Z             },
2026-06-19T05:28:32.4882574Z             {
2026-06-19T05:28:32.4882824Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4883105Z               "line": 1176
2026-06-19T05:28:32.4883327Z             },
2026-06-19T05:28:32.4883526Z             {
2026-06-19T05:28:32.4883763Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4884049Z               "line": 1292
2026-06-19T05:28:32.4884278Z             },
2026-06-19T05:28:32.4884488Z             {
2026-06-19T05:28:32.4884737Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4885018Z               "line": 1307
2026-06-19T05:28:32.4885246Z             },
2026-06-19T05:28:32.4885442Z             {
2026-06-19T05:28:32.4885681Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4885972Z               "line": 1418
2026-06-19T05:28:32.4886199Z             },
2026-06-19T05:28:32.4886407Z             {
2026-06-19T05:28:32.4886650Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4886935Z               "line": 1429
2026-06-19T05:28:32.4887159Z             }
2026-06-19T05:28:32.4887355Z           ]
2026-06-19T05:28:32.4887546Z         }
2026-06-19T05:28:32.4887741Z       }
2026-06-19T05:28:32.4887943Z     },
2026-06-19T05:28:32.4888137Z     {
2026-06-19T05:28:32.4888352Z       "id": "REQ-MANIFEST-2",
2026-06-19T05:28:32.4889115Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-19T05:28:32.4889769Z       "requiredStages": [
2026-06-19T05:28:32.4890008Z         "doc",
2026-06-19T05:28:32.4890213Z         "impl",
2026-06-19T05:28:32.4890408Z         "unit"
2026-06-19T05:28:32.4890613Z       ],
2026-06-19T05:28:32.4890805Z       "stages": {
2026-06-19T05:28:32.4891023Z         "doc": {
2026-06-19T05:28:32.4891242Z           "complete": true,
2026-06-19T05:28:32.4891468Z           "evidence": [
2026-06-19T05:28:32.4891680Z             {
2026-06-19T05:28:32.4891900Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4892153Z               "line": 75
2026-06-19T05:28:32.4892372Z             }
2026-06-19T05:28:32.4892572Z           ]
2026-06-19T05:28:32.4892773Z         },
2026-06-19T05:28:32.4892968Z         "impl": {
2026-06-19T05:28:32.4893192Z           "complete": true,
2026-06-19T05:28:32.4893431Z           "evidence": [
2026-06-19T05:28:32.4893793Z             {
2026-06-19T05:28:32.4894035Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4894318Z               "line": 62
2026-06-19T05:28:32.4894547Z             },
2026-06-19T05:28:32.4894743Z             {
2026-06-19T05:28:32.4894987Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4895278Z               "line": 15
2026-06-19T05:28:32.4895592Z             },
2026-06-19T05:28:32.4895796Z             {
2026-06-19T05:28:32.4896044Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4896335Z               "line": 65
2026-06-19T05:28:32.4896551Z             },
2026-06-19T05:28:32.4896754Z             {
2026-06-19T05:28:32.4896995Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4897272Z               "line": 83
2026-06-19T05:28:32.4897491Z             },
2026-06-19T05:28:32.4897695Z             {
2026-06-19T05:28:32.4897930Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4898221Z               "line": 183
2026-06-19T05:28:32.4898440Z             },
2026-06-19T05:28:32.4902085Z             {
2026-06-19T05:28:32.4902403Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4902713Z               "line": 527
2026-06-19T05:28:32.4902947Z             },
2026-06-19T05:28:32.4903156Z             {
2026-06-19T05:28:32.4903433Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4903732Z               "line": 553
2026-06-19T05:28:32.4903958Z             },
2026-06-19T05:28:32.4904167Z             {
2026-06-19T05:28:32.4904414Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4904693Z               "line": 671
2026-06-19T05:28:32.4904912Z             },
2026-06-19T05:28:32.4905112Z             {
2026-06-19T05:28:32.4905351Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4905632Z               "line": 696
2026-06-19T05:28:32.4905852Z             },
2026-06-19T05:28:32.4906070Z             {
2026-06-19T05:28:32.4906310Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4906590Z               "line": 719
2026-06-19T05:28:32.4906816Z             },
2026-06-19T05:28:32.4907015Z             {
2026-06-19T05:28:32.4907253Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4907542Z               "line": 734
2026-06-19T05:28:32.4907770Z             },
2026-06-19T05:28:32.4907974Z             {
2026-06-19T05:28:32.4908195Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4908471Z               "line": 5424
2026-06-19T05:28:32.4908700Z             },
2026-06-19T05:28:32.4908895Z             {
2026-06-19T05:28:32.4909195Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4909486Z               "line": 5438
2026-06-19T05:28:32.4909712Z             },
2026-06-19T05:28:32.4909918Z             {
2026-06-19T05:28:32.4910150Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4910418Z               "line": 5472
2026-06-19T05:28:32.4910637Z             }
2026-06-19T05:28:32.4910832Z           ]
2026-06-19T05:28:32.4911028Z         },
2026-06-19T05:28:32.4911228Z         "int": {
2026-06-19T05:28:32.4911433Z           "complete": false,
2026-06-19T05:28:32.4911681Z           "evidence": []
2026-06-19T05:28:32.4911906Z         },
2026-06-19T05:28:32.4912115Z         "unit": {
2026-06-19T05:28:32.4912330Z           "complete": true,
2026-06-19T05:28:32.4912555Z           "evidence": [
2026-06-19T05:28:32.4912757Z             {
2026-06-19T05:28:32.4913002Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.4913288Z               "line": 921
2026-06-19T05:28:32.4913507Z             },
2026-06-19T05:28:32.4913702Z             {
2026-06-19T05:28:32.4913950Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4914237Z               "line": 211
2026-06-19T05:28:32.4914451Z             },
2026-06-19T05:28:32.4914645Z             {
2026-06-19T05:28:32.4915055Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4915343Z               "line": 272
2026-06-19T05:28:32.4915569Z             },
2026-06-19T05:28:32.4915768Z             {
2026-06-19T05:28:32.4916001Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4916296Z               "line": 313
2026-06-19T05:28:32.4916698Z             },
2026-06-19T05:28:32.4916903Z             {
2026-06-19T05:28:32.4917151Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4917428Z               "line": 325
2026-06-19T05:28:32.4917643Z             },
2026-06-19T05:28:32.4917836Z             {
2026-06-19T05:28:32.4918079Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4918354Z               "line": 336
2026-06-19T05:28:32.4918563Z             },
2026-06-19T05:28:32.4918769Z             {
2026-06-19T05:28:32.4919069Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4919369Z               "line": 345
2026-06-19T05:28:32.4919604Z             },
2026-06-19T05:28:32.4919798Z             {
2026-06-19T05:28:32.4920041Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4920323Z               "line": 361
2026-06-19T05:28:32.4920541Z             },
2026-06-19T05:28:32.4920739Z             {
2026-06-19T05:28:32.4920988Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4921264Z               "line": 444
2026-06-19T05:28:32.4921483Z             },
2026-06-19T05:28:32.4921683Z             {
2026-06-19T05:28:32.4921922Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4922213Z               "line": 958
2026-06-19T05:28:32.4922427Z             },
2026-06-19T05:28:32.4922632Z             {
2026-06-19T05:28:32.4922871Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4923163Z               "line": 982
2026-06-19T05:28:32.4923384Z             },
2026-06-19T05:28:32.4923585Z             {
2026-06-19T05:28:32.4923824Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4924105Z               "line": 1008
2026-06-19T05:28:32.4924318Z             },
2026-06-19T05:28:32.4924515Z             {
2026-06-19T05:28:32.4924754Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4925041Z               "line": 1027
2026-06-19T05:28:32.4925268Z             },
2026-06-19T05:28:32.4925468Z             {
2026-06-19T05:28:32.4925710Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4925994Z               "line": 1058
2026-06-19T05:28:32.4926222Z             },
2026-06-19T05:28:32.4926419Z             {
2026-06-19T05:28:32.4926653Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.4926939Z               "line": 309
2026-06-19T05:28:32.4927158Z             },
2026-06-19T05:28:32.4927354Z             {
2026-06-19T05:28:32.4927583Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.4927859Z               "line": 606
2026-06-19T05:28:32.4928087Z             },
2026-06-19T05:28:32.4928284Z             {
2026-06-19T05:28:32.4928496Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4928770Z               "line": 8415
2026-06-19T05:28:32.4929133Z             },
2026-06-19T05:28:32.4929334Z             {
2026-06-19T05:28:32.4929573Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4929844Z               "line": 9363
2026-06-19T05:28:32.4930067Z             }
2026-06-19T05:28:32.4930259Z           ]
2026-06-19T05:28:32.4930450Z         }
2026-06-19T05:28:32.4930644Z       }
2026-06-19T05:28:32.4930837Z     },
2026-06-19T05:28:32.4931020Z     {
2026-06-19T05:28:32.4931224Z       "id": "REQ-MANIFEST-3",
2026-06-19T05:28:32.4932043Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-19T05:28:32.4932869Z       "requiredStages": [
2026-06-19T05:28:32.4933093Z         "doc",
2026-06-19T05:28:32.4933297Z         "impl",
2026-06-19T05:28:32.4933506Z         "unit"
2026-06-19T05:28:32.4933704Z       ],
2026-06-19T05:28:32.4933897Z       "stages": {
2026-06-19T05:28:32.4934108Z         "doc": {
2026-06-19T05:28:32.4934307Z           "complete": true,
2026-06-19T05:28:32.4934675Z           "evidence": [
2026-06-19T05:28:32.4934898Z             {
2026-06-19T05:28:32.4935113Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4935361Z               "line": 81
2026-06-19T05:28:32.4935576Z             }
2026-06-19T05:28:32.4935775Z           ]
2026-06-19T05:28:32.4935967Z         },
2026-06-19T05:28:32.4936161Z         "impl": {
2026-06-19T05:28:32.4936378Z           "complete": true,
2026-06-19T05:28:32.4936602Z           "evidence": [
2026-06-19T05:28:32.4936821Z             {
2026-06-19T05:28:32.4937064Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4937355Z               "line": 72
2026-06-19T05:28:32.4937571Z             },
2026-06-19T05:28:32.4937765Z             {
2026-06-19T05:28:32.4938009Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4938295Z               "line": 101
2026-06-19T05:28:32.4938510Z             },
2026-06-19T05:28:32.4938709Z             {
2026-06-19T05:28:32.4939023Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4939302Z               "line": 132
2026-06-19T05:28:32.4939522Z             },
2026-06-19T05:28:32.4939721Z             {
2026-06-19T05:28:32.4939964Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4940247Z               "line": 577
2026-06-19T05:28:32.4940467Z             },
2026-06-19T05:28:32.4940671Z             {
2026-06-19T05:28:32.4940914Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4941194Z               "line": 633
2026-06-19T05:28:32.4941406Z             },
2026-06-19T05:28:32.4941604Z             {
2026-06-19T05:28:32.4941831Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4942109Z               "line": 5485
2026-06-19T05:28:32.4942327Z             },
2026-06-19T05:28:32.4942526Z             {
2026-06-19T05:28:32.4942756Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4943019Z               "line": 5511
2026-06-19T05:28:32.4943247Z             }
2026-06-19T05:28:32.4943448Z           ]
2026-06-19T05:28:32.4943644Z         },
2026-06-19T05:28:32.4943757Z         "int": {
2026-06-19T05:28:32.4943872Z           "complete": false,
2026-06-19T05:28:32.4943996Z           "evidence": []
2026-06-19T05:28:32.4944101Z         },
2026-06-19T05:28:32.4944202Z         "unit": {
2026-06-19T05:28:32.4944311Z           "complete": true,
2026-06-19T05:28:32.4944424Z           "evidence": [
2026-06-19T05:28:32.4944529Z             {
2026-06-19T05:28:32.4944677Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4944791Z               "line": 371
2026-06-19T05:28:32.4944891Z             },
2026-06-19T05:28:32.4944997Z             {
2026-06-19T05:28:32.4945153Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4945249Z               "line": 429
2026-06-19T05:28:32.4945354Z             },
2026-06-19T05:28:32.4945453Z             {
2026-06-19T05:28:32.4945602Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4945715Z               "line": 1082
2026-06-19T05:28:32.4945817Z             },
2026-06-19T05:28:32.4945926Z             {
2026-06-19T05:28:32.4946050Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.4946156Z               "line": 8508
2026-06-19T05:28:32.4946250Z             }
2026-06-19T05:28:32.4946355Z           ]
2026-06-19T05:28:32.4946456Z         }
2026-06-19T05:28:32.4946565Z       }
2026-06-19T05:28:32.4946669Z     },
2026-06-19T05:28:32.4946769Z     {
2026-06-19T05:28:32.4946892Z       "id": "REQ-MANIFEST-4",
2026-06-19T05:28:32.4947749Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-19T05:28:32.4947882Z       "requiredStages": [
2026-06-19T05:28:32.4947987Z         "doc",
2026-06-19T05:28:32.4948093Z         "impl",
2026-06-19T05:28:32.4948292Z         "unit"
2026-06-19T05:28:32.4948393Z       ],
2026-06-19T05:28:32.4948502Z       "stages": {
2026-06-19T05:28:32.4948602Z         "doc": {
2026-06-19T05:28:32.4948718Z           "complete": true,
2026-06-19T05:28:32.4948831Z           "evidence": [
2026-06-19T05:28:32.4948936Z             {
2026-06-19T05:28:32.4949122Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4949227Z               "line": 88
2026-06-19T05:28:32.4949332Z             }
2026-06-19T05:28:32.4949433Z           ]
2026-06-19T05:28:32.4949541Z         },
2026-06-19T05:28:32.4949640Z         "impl": {
2026-06-19T05:28:32.4949796Z           "complete": true,
2026-06-19T05:28:32.4949905Z           "evidence": [
2026-06-19T05:28:32.4950006Z             {
2026-06-19T05:28:32.4950153Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4950253Z               "line": 80
2026-06-19T05:28:32.4950359Z             },
2026-06-19T05:28:32.4950459Z             {
2026-06-19T05:28:32.4950611Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4950731Z               "line": 163
2026-06-19T05:28:32.4950835Z             },
2026-06-19T05:28:32.4950940Z             {
2026-06-19T05:28:32.4951083Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.4951202Z               "line": 83
2026-06-19T05:28:32.4951298Z             },
2026-06-19T05:28:32.4951403Z             {
2026-06-19T05:28:32.4951555Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.4951666Z               "line": 625
2026-06-19T05:28:32.4951779Z             },
2026-06-19T05:28:32.4951885Z             {
2026-06-19T05:28:32.4952032Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.4952155Z               "line": 650
2026-06-19T05:28:32.4952250Z             }
2026-06-19T05:28:32.4952359Z           ]
2026-06-19T05:28:32.4952462Z         },
2026-06-19T05:28:32.4952567Z         "int": {
2026-06-19T05:28:32.4952678Z           "complete": false,
2026-06-19T05:28:32.4952796Z           "evidence": []
2026-06-19T05:28:32.4952897Z         },
2026-06-19T05:28:32.4953002Z         "unit": {
2026-06-19T05:28:32.4953120Z           "complete": true,
2026-06-19T05:28:32.4953226Z           "evidence": [
2026-06-19T05:28:32.4953331Z             {
2026-06-19T05:28:32.4953483Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4953603Z               "line": 1242
2026-06-19T05:28:32.4953702Z             },
2026-06-19T05:28:32.4953807Z             {
2026-06-19T05:28:32.4953964Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4954074Z               "line": 1275
2026-06-19T05:28:32.4954175Z             },
2026-06-19T05:28:32.4954265Z             {
2026-06-19T05:28:32.4954413Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.4954529Z               "line": 984
2026-06-19T05:28:32.4954626Z             }
2026-06-19T05:28:32.4954733Z           ]
2026-06-19T05:28:32.4954838Z         }
2026-06-19T05:28:32.4954946Z       }
2026-06-19T05:28:32.4955045Z     },
2026-06-19T05:28:32.4955146Z     {
2026-06-19T05:28:32.4955261Z       "id": "REQ-MANIFEST-5",
2026-06-19T05:28:32.4958275Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-19T05:28:32.4958624Z       "requiredStages": [
2026-06-19T05:28:32.4958733Z         "doc",
2026-06-19T05:28:32.4958838Z         "impl",
2026-06-19T05:28:32.4959057Z         "unit"
2026-06-19T05:28:32.4959157Z       ],
2026-06-19T05:28:32.4959263Z       "stages": {
2026-06-19T05:28:32.4959372Z         "doc": {
2026-06-19T05:28:32.4959477Z           "complete": true,
2026-06-19T05:28:32.4959588Z           "evidence": [
2026-06-19T05:28:32.4959701Z             {
2026-06-19T05:28:32.4959825Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4959927Z               "line": 83
2026-06-19T05:28:32.4960035Z             }
2026-06-19T05:28:32.4960134Z           ]
2026-06-19T05:28:32.4960229Z         },
2026-06-19T05:28:32.4960333Z         "impl": {
2026-06-19T05:28:32.4960437Z           "complete": true,
2026-06-19T05:28:32.4960556Z           "evidence": [
2026-06-19T05:28:32.4960662Z             {
2026-06-19T05:28:32.4960813Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4960929Z               "line": 120
2026-06-19T05:28:32.4961033Z             }
2026-06-19T05:28:32.4961137Z           ]
2026-06-19T05:28:32.4961243Z         },
2026-06-19T05:28:32.4961348Z         "int": {
2026-06-19T05:28:32.4961462Z           "complete": false,
2026-06-19T05:28:32.4961587Z           "evidence": []
2026-06-19T05:28:32.4961691Z         },
2026-06-19T05:28:32.4961791Z         "unit": {
2026-06-19T05:28:32.4961906Z           "complete": true,
2026-06-19T05:28:32.4962020Z           "evidence": [
2026-06-19T05:28:32.4962125Z             {
2026-06-19T05:28:32.4962268Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-19T05:28:32.4962378Z               "line": 404
2026-06-19T05:28:32.4962489Z             },
2026-06-19T05:28:32.4962588Z             {
2026-06-19T05:28:32.4962739Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4962853Z               "line": 1155
2026-06-19T05:28:32.4962961Z             },
2026-06-19T05:28:32.4963065Z             {
2026-06-19T05:28:32.4963214Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4963337Z               "line": 1184
2026-06-19T05:28:32.4963433Z             },
2026-06-19T05:28:32.4963542Z             {
2026-06-19T05:28:32.4963690Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4963810Z               "line": 1224
2026-06-19T05:28:32.4963919Z             },
2026-06-19T05:28:32.4964024Z             {
2026-06-19T05:28:32.4964182Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4964291Z               "line": 1239
2026-06-19T05:28:32.4964435Z             }
2026-06-19T05:28:32.4964529Z           ]
2026-06-19T05:28:32.4964634Z         }
2026-06-19T05:28:32.4964731Z       }
2026-06-19T05:28:32.4964839Z     },
2026-06-19T05:28:32.4964944Z     {
2026-06-19T05:28:32.4965065Z       "id": "REQ-MANIFEST-6",
2026-06-19T05:28:32.4967237Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-19T05:28:32.4967494Z       "requiredStages": [
2026-06-19T05:28:32.4967600Z         "doc",
2026-06-19T05:28:32.4967709Z         "unit"
2026-06-19T05:28:32.4967813Z       ],
2026-06-19T05:28:32.4967913Z       "stages": {
2026-06-19T05:28:32.4968130Z         "doc": {
2026-06-19T05:28:32.4968239Z           "complete": true,
2026-06-19T05:28:32.4968355Z           "evidence": [
2026-06-19T05:28:32.4968454Z             {
2026-06-19T05:28:32.4968578Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4968684Z               "line": 141
2026-06-19T05:28:32.4968792Z             }
2026-06-19T05:28:32.4968903Z           ]
2026-06-19T05:28:32.4969073Z         },
2026-06-19T05:28:32.4969175Z         "impl": {
2026-06-19T05:28:32.4969284Z           "complete": false,
2026-06-19T05:28:32.4969407Z           "evidence": []
2026-06-19T05:28:32.4969508Z         },
2026-06-19T05:28:32.4969627Z         "int": {
2026-06-19T05:28:32.4969746Z           "complete": false,
2026-06-19T05:28:32.4969852Z           "evidence": []
2026-06-19T05:28:32.4969956Z         },
2026-06-19T05:28:32.4970056Z         "unit": {
2026-06-19T05:28:32.4970167Z           "complete": true,
2026-06-19T05:28:32.4970284Z           "evidence": [
2026-06-19T05:28:32.4970390Z             {
2026-06-19T05:28:32.4970548Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.4970651Z               "line": 1261
2026-06-19T05:28:32.4970756Z             }
2026-06-19T05:28:32.4970861Z           ]
2026-06-19T05:28:32.4970959Z         }
2026-06-19T05:28:32.4971058Z       }
2026-06-19T05:28:32.4971164Z     },
2026-06-19T05:28:32.4971264Z     {
2026-06-19T05:28:32.4971378Z       "id": "REQ-MANIFEST-7",
2026-06-19T05:28:32.4974728Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-19T05:28:32.4974918Z       "requiredStages": [
2026-06-19T05:28:32.4975023Z         "doc",
2026-06-19T05:28:32.4975118Z         "impl",
2026-06-19T05:28:32.4975233Z         "unit"
2026-06-19T05:28:32.4975352Z       ],
2026-06-19T05:28:32.4975462Z       "stages": {
2026-06-19T05:28:32.4975582Z         "doc": {
2026-06-19T05:28:32.4975705Z           "complete": true,
2026-06-19T05:28:32.4975819Z           "evidence": [
2026-06-19T05:28:32.4975930Z             {
2026-06-19T05:28:32.4976066Z               "path": "docs/MANIFEST.md",
2026-06-19T05:28:32.4976180Z               "line": 35
2026-06-19T05:28:32.4976305Z             }
2026-06-19T05:28:32.4976405Z           ]
2026-06-19T05:28:32.4976509Z         },
2026-06-19T05:28:32.4976620Z         "impl": {
2026-06-19T05:28:32.4976734Z           "complete": true,
2026-06-19T05:28:32.4976838Z           "evidence": [
2026-06-19T05:28:32.4976940Z             {
2026-06-19T05:28:32.4977090Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:28:32.4977202Z               "line": 54
2026-06-19T05:28:32.4977310Z             }
2026-06-19T05:28:32.4977419Z           ]
2026-06-19T05:28:32.4977521Z         },
2026-06-19T05:28:32.4977630Z         "int": {
2026-06-19T05:28:32.4977879Z           "complete": false,
2026-06-19T05:28:32.4977992Z           "evidence": []
2026-06-19T05:28:32.4978093Z         },
2026-06-19T05:28:32.4978204Z         "unit": {
2026-06-19T05:28:32.4978321Z           "complete": true,
2026-06-19T05:28:32.4978429Z           "evidence": [
2026-06-19T05:28:32.4978563Z             {
2026-06-19T05:28:32.4978718Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4979038Z               "line": 1435
2026-06-19T05:28:32.4979148Z             }
2026-06-19T05:28:32.4979249Z           ]
2026-06-19T05:28:32.4979357Z         }
2026-06-19T05:28:32.4979463Z       }
2026-06-19T05:28:32.4979568Z     },
2026-06-19T05:28:32.4979672Z     {
2026-06-19T05:28:32.4979792Z       "id": "REQ-MANIFEST-8",
2026-06-19T05:28:32.4982021Z       "title": "[adapter] host_binaries declares the harness executable basenames a kind=\"harness\" adapter hosts agents inside (e.g. host_binaries = [\"claude\"]); bind-time pid→exe-basename match (case-insensitive, .exe-stripped) over the seed's parent_pid selects the candidate adapter set; zero matches → a friendly error naming the binary + the --adapter escape hatch. Additive + N-1-safe: optional Vec<String>, #[serde(default, skip_serializing_if = \"Vec::is_empty\")] (omitted-serialized like shortcut_basename, old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). The match-key for ADR-0021 adapter-agnostic bind-time resolution. (v0.9.0)",
2026-06-19T05:28:32.4982191Z       "requiredStages": [
2026-06-19T05:28:32.4982297Z         "doc",
2026-06-19T05:28:32.4982401Z         "impl",
2026-06-19T05:28:32.4982501Z         "unit",
2026-06-19T05:28:32.4982602Z         "int"
2026-06-19T05:28:32.4982707Z       ],
2026-06-19T05:28:32.4982816Z       "stages": {
2026-06-19T05:28:32.4982931Z         "doc": {
2026-06-19T05:28:32.4983045Z           "complete": true,
2026-06-19T05:28:32.4983154Z           "evidence": [
2026-06-19T05:28:32.4983260Z             {
2026-06-19T05:28:32.4983402Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.4983522Z               "line": 184
2026-06-19T05:28:32.4983623Z             },
2026-06-19T05:28:32.4983712Z             {
2026-06-19T05:28:32.4983844Z               "path": "docs/MANIFEST.md",
2026-06-19T05:28:32.4983950Z               "line": 46
2026-06-19T05:28:32.4984048Z             }
2026-06-19T05:28:32.4984147Z           ]
2026-06-19T05:28:32.4984248Z         },
2026-06-19T05:28:32.4984354Z         "impl": {
2026-06-19T05:28:32.4984462Z           "complete": true,
2026-06-19T05:28:32.4984568Z           "evidence": [
2026-06-19T05:28:32.4984673Z             {
2026-06-19T05:28:32.4984829Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.4984944Z               "line": 222
2026-06-19T05:28:32.4985049Z             },
2026-06-19T05:28:32.4985154Z             {
2026-06-19T05:28:32.4985297Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.4985411Z               "line": 306
2026-06-19T05:28:32.4985512Z             }
2026-06-19T05:28:32.4985617Z           ]
2026-06-19T05:28:32.4985721Z         },
2026-06-19T05:28:32.4985832Z         "int": {
2026-06-19T05:28:32.4985945Z           "complete": true,
2026-06-19T05:28:32.4986060Z           "evidence": [
2026-06-19T05:28:32.4986166Z             {
2026-06-19T05:28:32.4986322Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-19T05:28:32.4986437Z               "line": 18
2026-06-19T05:28:32.4986542Z             }
2026-06-19T05:28:32.4986650Z           ]
2026-06-19T05:28:32.4986755Z         },
2026-06-19T05:28:32.4986861Z         "unit": {
2026-06-19T05:28:32.4986984Z           "complete": true,
2026-06-19T05:28:32.4987093Z           "evidence": [
2026-06-19T05:28:32.4987204Z             {
2026-06-19T05:28:32.4987355Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.4987476Z               "line": 1453
2026-06-19T05:28:32.4987576Z             },
2026-06-19T05:28:32.4987674Z             {
2026-06-19T05:28:32.4987952Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.4988057Z               "line": 316
2026-06-19T05:28:32.4988158Z             },
2026-06-19T05:28:32.4988262Z             {
2026-06-19T05:28:32.4988410Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.4988524Z               "line": 332
2026-06-19T05:28:32.4988628Z             },
2026-06-19T05:28:32.4988829Z             {
2026-06-19T05:28:32.4989057Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.4989175Z               "line": 345
2026-06-19T05:28:32.4989278Z             },
2026-06-19T05:28:32.4989388Z             {
2026-06-19T05:28:32.4989527Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.4989636Z               "line": 422
2026-06-19T05:28:32.4989737Z             },
2026-06-19T05:28:32.4989842Z             {
2026-06-19T05:28:32.4989985Z               "path": "crates/spt-store/src/proc.rs",
2026-06-19T05:28:32.4990094Z               "line": 436
2026-06-19T05:28:32.4990203Z             }
2026-06-19T05:28:32.4990310Z           ]
2026-06-19T05:28:32.4990409Z         }
2026-06-19T05:28:32.4990518Z       }
2026-06-19T05:28:32.4993849Z     },
2026-06-19T05:28:32.4993976Z     {
2026-06-19T05:28:32.4994106Z       "id": "REQ-MESH-1",
2026-06-19T05:28:32.4996262Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-19T05:28:32.4996426Z       "requiredStages": [
2026-06-19T05:28:32.4996529Z         "impl",
2026-06-19T05:28:32.4996648Z         "unit",
2026-06-19T05:28:32.4996759Z         "int"
2026-06-19T05:28:32.4996863Z       ],
2026-06-19T05:28:32.4996978Z       "stages": {
2026-06-19T05:28:32.4997083Z         "doc": {
2026-06-19T05:28:32.4997201Z           "complete": false,
2026-06-19T05:28:32.4997338Z           "evidence": []
2026-06-19T05:28:32.4997440Z         },
2026-06-19T05:28:32.4997544Z         "impl": {
2026-06-19T05:28:32.4997653Z           "complete": true,
2026-06-19T05:28:32.4997759Z           "evidence": [
2026-06-19T05:28:32.4997854Z             {
2026-06-19T05:28:32.4998012Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.4998116Z               "line": 922
2026-06-19T05:28:32.4998216Z             },
2026-06-19T05:28:32.4998317Z             {
2026-06-19T05:28:32.4998469Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.4998583Z               "line": 38
2026-06-19T05:28:32.4998670Z             },
2026-06-19T05:28:32.4998774Z             {
2026-06-19T05:28:32.4998927Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.4999141Z               "line": 161
2026-06-19T05:28:32.4999256Z             },
2026-06-19T05:28:32.4999356Z             {
2026-06-19T05:28:32.4999503Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.4999617Z               "line": 206
2026-06-19T05:28:32.4999721Z             },
2026-06-19T05:28:32.4999824Z             {
2026-06-19T05:28:32.4999973Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5000082Z               "line": 57
2026-06-19T05:28:32.5000182Z             },
2026-06-19T05:28:32.5000288Z             {
2026-06-19T05:28:32.5000448Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5000560Z               "line": 24
2026-06-19T05:28:32.5000664Z             },
2026-06-19T05:28:32.5000922Z             {
2026-06-19T05:28:32.5001088Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5001194Z               "line": 142
2026-06-19T05:28:32.5001303Z             },
2026-06-19T05:28:32.5001393Z             {
2026-06-19T05:28:32.5001547Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5001760Z               "line": 162
2026-06-19T05:28:32.5001852Z             }
2026-06-19T05:28:32.5001951Z           ]
2026-06-19T05:28:32.5002051Z         },
2026-06-19T05:28:32.5002162Z         "int": {
2026-06-19T05:28:32.5002266Z           "complete": true,
2026-06-19T05:28:32.5002384Z           "evidence": [
2026-06-19T05:28:32.5002489Z             {
2026-06-19T05:28:32.5002653Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-19T05:28:32.5002768Z               "line": 67
2026-06-19T05:28:32.5002864Z             },
2026-06-19T05:28:32.5002968Z             {
2026-06-19T05:28:32.5003126Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-19T05:28:32.5003246Z               "line": 93
2026-06-19T05:28:32.5003359Z             },
2026-06-19T05:28:32.5003455Z             {
2026-06-19T05:28:32.5003603Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-19T05:28:32.5003707Z               "line": 117
2026-06-19T05:28:32.5003813Z             },
2026-06-19T05:28:32.5003918Z             {
2026-06-19T05:28:32.5004075Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-19T05:28:32.5004184Z               "line": 134
2026-06-19T05:28:32.5004284Z             }
2026-06-19T05:28:32.5004390Z           ]
2026-06-19T05:28:32.5004490Z         },
2026-06-19T05:28:32.5004594Z         "unit": {
2026-06-19T05:28:32.5004700Z           "complete": true,
2026-06-19T05:28:32.5004819Z           "evidence": [
2026-06-19T05:28:32.5004927Z             {
2026-06-19T05:28:32.5005075Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5005191Z               "line": 427
2026-06-19T05:28:32.5005300Z             },
2026-06-19T05:28:32.5005407Z             {
2026-06-19T05:28:32.5005563Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5005668Z               "line": 376
2026-06-19T05:28:32.5005778Z             },
2026-06-19T05:28:32.5005878Z             {
2026-06-19T05:28:32.5006051Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5006174Z               "line": 412
2026-06-19T05:28:32.5006284Z             },
2026-06-19T05:28:32.5006389Z             {
2026-06-19T05:28:32.5006551Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5006671Z               "line": 427
2026-06-19T05:28:32.5006760Z             },
2026-06-19T05:28:32.5006860Z             {
2026-06-19T05:28:32.5007014Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5007118Z               "line": 438
2026-06-19T05:28:32.5007218Z             },
2026-06-19T05:28:32.5007334Z             {
2026-06-19T05:28:32.5007490Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5007596Z               "line": 449
2026-06-19T05:28:32.5007704Z             },
2026-06-19T05:28:32.5007804Z             {
2026-06-19T05:28:32.5007961Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5008075Z               "line": 460
2026-06-19T05:28:32.5008180Z             },
2026-06-19T05:28:32.5008286Z             {
2026-06-19T05:28:32.5008433Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5008548Z               "line": 496
2026-06-19T05:28:32.5008653Z             },
2026-06-19T05:28:32.5008762Z             {
2026-06-19T05:28:32.5008920Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5009105Z               "line": 519
2026-06-19T05:28:32.5009216Z             },
2026-06-19T05:28:32.5009315Z             {
2026-06-19T05:28:32.5009473Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5009682Z               "line": 546
2026-06-19T05:28:32.5009792Z             }
2026-06-19T05:28:32.5009893Z           ]
2026-06-19T05:28:32.5009997Z         }
2026-06-19T05:28:32.5010101Z       }
2026-06-19T05:28:32.5010196Z     },
2026-06-19T05:28:32.5010295Z     {
2026-06-19T05:28:32.5010403Z       "id": "REQ-MESH-2",
2026-06-19T05:28:32.5013063Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-19T05:28:32.5013223Z       "requiredStages": [
2026-06-19T05:28:32.5013333Z         "impl",
2026-06-19T05:28:32.5013462Z         "unit",
2026-06-19T05:28:32.5013566Z         "int"
2026-06-19T05:28:32.5013667Z       ],
2026-06-19T05:28:32.5013772Z       "stages": {
2026-06-19T05:28:32.5013876Z         "doc": {
2026-06-19T05:28:32.5013996Z           "complete": false,
2026-06-19T05:28:32.5014110Z           "evidence": []
2026-06-19T05:28:32.5014209Z         },
2026-06-19T05:28:32.5014321Z         "impl": {
2026-06-19T05:28:32.5014429Z           "complete": true,
2026-06-19T05:28:32.5014544Z           "evidence": [
2026-06-19T05:28:32.5014640Z             {
2026-06-19T05:28:32.5014801Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5014931Z               "line": 757
2026-06-19T05:28:32.5015032Z             },
2026-06-19T05:28:32.5015135Z             {
2026-06-19T05:28:32.5015275Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5015393Z               "line": 118
2026-06-19T05:28:32.5015502Z             },
2026-06-19T05:28:32.5015597Z             {
2026-06-19T05:28:32.5015752Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5015861Z               "line": 347
2026-06-19T05:28:32.5015967Z             },
2026-06-19T05:28:32.5016067Z             {
2026-06-19T05:28:32.5016219Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5016324Z               "line": 389
2026-06-19T05:28:32.5016423Z             },
2026-06-19T05:28:32.5016529Z             {
2026-06-19T05:28:32.5016682Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5016805Z               "line": 403
2026-06-19T05:28:32.5016907Z             },
2026-06-19T05:28:32.5017020Z             {
2026-06-19T05:28:32.5017163Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5017264Z               "line": 492
2026-06-19T05:28:32.5017364Z             },
2026-06-19T05:28:32.5017459Z             {
2026-06-19T05:28:32.5017607Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5017716Z               "line": 507
2026-06-19T05:28:32.5017827Z             },
2026-06-19T05:28:32.5017926Z             {
2026-06-19T05:28:32.5018079Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5018199Z               "line": 534
2026-06-19T05:28:32.5018302Z             },
2026-06-19T05:28:32.5018401Z             {
2026-06-19T05:28:32.5018550Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5018659Z               "line": 207
2026-06-19T05:28:32.5018759Z             },
2026-06-19T05:28:32.5018860Z             {
2026-06-19T05:28:32.5019089Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5019327Z               "line": 755
2026-06-19T05:28:32.5019437Z             },
2026-06-19T05:28:32.5019523Z             {
2026-06-19T05:28:32.5019684Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5019795Z               "line": 816
2026-06-19T05:28:32.5019899Z             },
2026-06-19T05:28:32.5020008Z             {
2026-06-19T05:28:32.5020261Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5020377Z               "line": 869
2026-06-19T05:28:32.5020481Z             },
2026-06-19T05:28:32.5020585Z             {
2026-06-19T05:28:32.5020742Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5020845Z               "line": 891
2026-06-19T05:28:32.5020944Z             },
2026-06-19T05:28:32.5021035Z             {
2026-06-19T05:28:32.5021188Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.5021292Z               "line": 122
2026-06-19T05:28:32.5021408Z             },
2026-06-19T05:28:32.5021517Z             {
2026-06-19T05:28:32.5021660Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5021765Z               "line": 44
2026-06-19T05:28:32.5021865Z             },
2026-06-19T05:28:32.5021975Z             {
2026-06-19T05:28:32.5022118Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5022246Z               "line": 184
2026-06-19T05:28:32.5022348Z             },
2026-06-19T05:28:32.5022452Z             {
2026-06-19T05:28:32.5022580Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5022686Z               "line": 211
2026-06-19T05:28:32.5022794Z             },
2026-06-19T05:28:32.5022895Z             {
2026-06-19T05:28:32.5023034Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5023133Z               "line": 251
2026-06-19T05:28:32.5023239Z             },
2026-06-19T05:28:32.5023340Z             {
2026-06-19T05:28:32.5023475Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5023595Z               "line": 275
2026-06-19T05:28:32.5023699Z             },
2026-06-19T05:28:32.5023807Z             {
2026-06-19T05:28:32.5023945Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5024056Z               "line": 289
2026-06-19T05:28:32.5024164Z             },
2026-06-19T05:28:32.5024261Z             {
2026-06-19T05:28:32.5024403Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5024508Z               "line": 300
2026-06-19T05:28:32.5024619Z             },
2026-06-19T05:28:32.5024723Z             {
2026-06-19T05:28:32.5024851Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5024966Z               "line": 313
2026-06-19T05:28:32.5025066Z             }
2026-06-19T05:28:32.5025166Z           ]
2026-06-19T05:28:32.5025262Z         },
2026-06-19T05:28:32.5025371Z         "int": {
2026-06-19T05:28:32.5025496Z           "complete": true,
2026-06-19T05:28:32.5025601Z           "evidence": [
2026-06-19T05:28:32.5025715Z             {
2026-06-19T05:28:32.5025878Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-19T05:28:32.5026000Z               "line": 116
2026-06-19T05:28:32.5026104Z             },
2026-06-19T05:28:32.5026242Z             {
2026-06-19T05:28:32.5026402Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-19T05:28:32.5026517Z               "line": 181
2026-06-19T05:28:32.5026623Z             }
2026-06-19T05:28:32.5026726Z           ]
2026-06-19T05:28:32.5026823Z         },
2026-06-19T05:28:32.5026913Z         "unit": {
2026-06-19T05:28:32.5027031Z           "complete": true,
2026-06-19T05:28:32.5027142Z           "evidence": [
2026-06-19T05:28:32.5027252Z             {
2026-06-19T05:28:32.5027409Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5027514Z               "line": 999
2026-06-19T05:28:32.5027623Z             },
2026-06-19T05:28:32.5027728Z             {
2026-06-19T05:28:32.5027961Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5028077Z               "line": 1016
2026-06-19T05:28:32.5028186Z             },
2026-06-19T05:28:32.5028281Z             {
2026-06-19T05:28:32.5028435Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5028543Z               "line": 1024
2026-06-19T05:28:32.5028649Z             },
2026-06-19T05:28:32.5028825Z             {
2026-06-19T05:28:32.5029048Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5029154Z               "line": 1048
2026-06-19T05:28:32.5029262Z             },
2026-06-19T05:28:32.5029367Z             {
2026-06-19T05:28:32.5029534Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5029644Z               "line": 1499
2026-06-19T05:28:32.5029744Z             },
2026-06-19T05:28:32.5029849Z             {
2026-06-19T05:28:32.5029992Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5030116Z               "line": 347
2026-06-19T05:28:32.5030216Z             },
2026-06-19T05:28:32.5030317Z             {
2026-06-19T05:28:32.5030464Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5030574Z               "line": 370
2026-06-19T05:28:32.5030680Z             },
2026-06-19T05:28:32.5030778Z             {
2026-06-19T05:28:32.5030922Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5031041Z               "line": 407
2026-06-19T05:28:32.5031145Z             },
2026-06-19T05:28:32.5031250Z             {
2026-06-19T05:28:32.5031387Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5031495Z               "line": 431
2026-06-19T05:28:32.5031595Z             },
2026-06-19T05:28:32.5031701Z             {
2026-06-19T05:28:32.5031833Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5031939Z               "line": 483
2026-06-19T05:28:32.5032044Z             },
2026-06-19T05:28:32.5032134Z             {
2026-06-19T05:28:32.5032283Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5032392Z               "line": 499
2026-06-19T05:28:32.5032496Z             },
2026-06-19T05:28:32.5032598Z             {
2026-06-19T05:28:32.5032735Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5032845Z               "line": 514
2026-06-19T05:28:32.5032941Z             },
2026-06-19T05:28:32.5033045Z             {
2026-06-19T05:28:32.5033174Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5033288Z               "line": 531
2026-06-19T05:28:32.5033393Z             }
2026-06-19T05:28:32.5033494Z           ]
2026-06-19T05:28:32.5033594Z         }
2026-06-19T05:28:32.5033684Z       }
2026-06-19T05:28:32.5033790Z     },
2026-06-19T05:28:32.5033885Z     {
2026-06-19T05:28:32.5034003Z       "id": "REQ-MESH-3",
2026-06-19T05:28:32.5035702Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-19T05:28:32.5035851Z       "requiredStages": [
2026-06-19T05:28:32.5035960Z         "impl",
2026-06-19T05:28:32.5036066Z         "unit",
2026-06-19T05:28:32.5036170Z         "int"
2026-06-19T05:28:32.5036280Z       ],
2026-06-19T05:28:32.5036381Z       "stages": {
2026-06-19T05:28:32.5036490Z         "doc": {
2026-06-19T05:28:32.5036607Z           "complete": false,
2026-06-19T05:28:32.5036722Z           "evidence": []
2026-06-19T05:28:32.5036821Z         },
2026-06-19T05:28:32.5036929Z         "impl": {
2026-06-19T05:28:32.5037049Z           "complete": true,
2026-06-19T05:28:32.5037291Z           "evidence": [
2026-06-19T05:28:32.5037397Z             {
2026-06-19T05:28:32.5037540Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.5037654Z               "line": 641
2026-06-19T05:28:32.5037750Z             }
2026-06-19T05:28:32.5037850Z           ]
2026-06-19T05:28:32.5037945Z         },
2026-06-19T05:28:32.5038145Z         "int": {
2026-06-19T05:28:32.5038269Z           "complete": true,
2026-06-19T05:28:32.5038375Z           "evidence": [
2026-06-19T05:28:32.5038475Z             {
2026-06-19T05:28:32.5038618Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-19T05:28:32.5038741Z               "line": 373
2026-06-19T05:28:32.5038851Z             },
2026-06-19T05:28:32.5039014Z             {
2026-06-19T05:28:32.5039170Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-19T05:28:32.5039272Z               "line": 436
2026-06-19T05:28:32.5039385Z             }
2026-06-19T05:28:32.5039484Z           ]
2026-06-19T05:28:32.5039594Z         },
2026-06-19T05:28:32.5039700Z         "unit": {
2026-06-19T05:28:32.5039813Z           "complete": true,
2026-06-19T05:28:32.5039923Z           "evidence": [
2026-06-19T05:28:32.5040023Z             {
2026-06-19T05:28:32.5040175Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.5040277Z               "line": 910
2026-06-19T05:28:32.5040386Z             }
2026-06-19T05:28:32.5040480Z           ]
2026-06-19T05:28:32.5040586Z         }
2026-06-19T05:28:32.5040690Z       }
2026-06-19T05:28:32.5040790Z     },
2026-06-19T05:28:32.5040897Z     {
2026-06-19T05:28:32.5041005Z       "id": "REQ-MESH-4",
2026-06-19T05:28:32.5043205Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-19T05:28:32.5043357Z       "requiredStages": [
2026-06-19T05:28:32.5043458Z         "impl",
2026-06-19T05:28:32.5043562Z         "unit",
2026-06-19T05:28:32.5043667Z         "int"
2026-06-19T05:28:32.5043769Z       ],
2026-06-19T05:28:32.5043877Z       "stages": {
2026-06-19T05:28:32.5043982Z         "doc": {
2026-06-19T05:28:32.5044103Z           "complete": false,
2026-06-19T05:28:32.5044220Z           "evidence": []
2026-06-19T05:28:32.5044325Z         },
2026-06-19T05:28:32.5044432Z         "impl": {
2026-06-19T05:28:32.5044539Z           "complete": true,
2026-06-19T05:28:32.5044667Z           "evidence": [
2026-06-19T05:28:32.5044772Z             {
2026-06-19T05:28:32.5044941Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:28:32.5045042Z               "line": 33
2026-06-19T05:28:32.5045133Z             },
2026-06-19T05:28:32.5045242Z             {
2026-06-19T05:28:32.5045395Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5045519Z               "line": 68
2026-06-19T05:28:32.5045623Z             },
2026-06-19T05:28:32.5045729Z             {
2026-06-19T05:28:32.5045871Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5045996Z               "line": 111
2026-06-19T05:28:32.5046105Z             },
2026-06-19T05:28:32.5046205Z             {
2026-06-19T05:28:32.5046359Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5046467Z               "line": 462
2026-06-19T05:28:32.5046572Z             },
2026-06-19T05:28:32.5046683Z             {
2026-06-19T05:28:32.5046950Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5047055Z               "line": 711
2026-06-19T05:28:32.5047158Z             },
2026-06-19T05:28:32.5047253Z             {
2026-06-19T05:28:32.5047395Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5047503Z               "line": 725
2026-06-19T05:28:32.5047724Z             },
2026-06-19T05:28:32.5047827Z             {
2026-06-19T05:28:32.5047977Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.5048086Z               "line": 132
2026-06-19T05:28:32.5048185Z             },
2026-06-19T05:28:32.5048286Z             {
2026-06-19T05:28:32.5048438Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:28:32.5048554Z               "line": 26
2026-06-19T05:28:32.5048658Z             },
2026-06-19T05:28:32.5048767Z             {
2026-06-19T05:28:32.5048902Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:28:32.5049096Z               "line": 97
2026-06-19T05:28:32.5049212Z             },
2026-06-19T05:28:32.5049316Z             {
2026-06-19T05:28:32.5049469Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:28:32.5049579Z               "line": 119
2026-06-19T05:28:32.5049687Z             },
2026-06-19T05:28:32.5049788Z             {
2026-06-19T05:28:32.5049931Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.5050044Z               "line": 82
2026-06-19T05:28:32.5050144Z             },
2026-06-19T05:28:32.5050250Z             {
2026-06-19T05:28:32.5050392Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.5050507Z               "line": 111
2026-06-19T05:28:32.5050608Z             },
2026-06-19T05:28:32.5050716Z             {
2026-06-19T05:28:32.5050846Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.5050960Z               "line": 232
2026-06-19T05:28:32.5051055Z             },
2026-06-19T05:28:32.5051161Z             {
2026-06-19T05:28:32.5051317Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.5051423Z               "line": 245
2026-06-19T05:28:32.5051532Z             },
2026-06-19T05:28:32.5051632Z             {
2026-06-19T05:28:32.5051762Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5051880Z               "line": 4534
2026-06-19T05:28:32.5051980Z             }
2026-06-19T05:28:32.5052101Z           ]
2026-06-19T05:28:32.5052204Z         },
2026-06-19T05:28:32.5052304Z         "int": {
2026-06-19T05:28:32.5052422Z           "complete": true,
2026-06-19T05:28:32.5052526Z           "evidence": [
2026-06-19T05:28:32.5052635Z             {
2026-06-19T05:28:32.5052783Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-19T05:28:32.5052892Z               "line": 98
2026-06-19T05:28:32.5052992Z             },
2026-06-19T05:28:32.5053098Z             {
2026-06-19T05:28:32.5053240Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-19T05:28:32.5053346Z               "line": 140
2026-06-19T05:28:32.5053455Z             }
2026-06-19T05:28:32.5053554Z           ]
2026-06-19T05:28:32.5053665Z         },
2026-06-19T05:28:32.5053765Z         "unit": {
2026-06-19T05:28:32.5053893Z           "complete": true,
2026-06-19T05:28:32.5054009Z           "evidence": [
2026-06-19T05:28:32.5054108Z             {
2026-06-19T05:28:32.5054270Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:28:32.5054376Z               "line": 178
2026-06-19T05:28:32.5054475Z             },
2026-06-19T05:28:32.5054571Z             {
2026-06-19T05:28:32.5054719Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:28:32.5054833Z               "line": 242
2026-06-19T05:28:32.5054930Z             },
2026-06-19T05:28:32.5055043Z             {
2026-06-19T05:28:32.5055194Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5055314Z               "line": 1079
2026-06-19T05:28:32.5055411Z             },
2026-06-19T05:28:32.5055617Z             {
2026-06-19T05:28:32.5055778Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5055893Z               "line": 1109
2026-06-19T05:28:32.5056003Z             },
2026-06-19T05:28:32.5056102Z             {
2026-06-19T05:28:32.5056256Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-19T05:28:32.5056370Z               "line": 1129
2026-06-19T05:28:32.5056561Z             },
2026-06-19T05:28:32.5056660Z             {
2026-06-19T05:28:32.5056928Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-19T05:28:32.5057037Z               "line": 602
2026-06-19T05:28:32.5057142Z             },
2026-06-19T05:28:32.5057248Z             {
2026-06-19T05:28:32.5057395Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:28:32.5057506Z               "line": 148
2026-06-19T05:28:32.5057610Z             },
2026-06-19T05:28:32.5057713Z             {
2026-06-19T05:28:32.5057866Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:28:32.5057978Z               "line": 169
2026-06-19T05:28:32.5058092Z             },
2026-06-19T05:28:32.5058193Z             {
2026-06-19T05:28:32.5058341Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:28:32.5058450Z               "line": 181
2026-06-19T05:28:32.5058551Z             },
2026-06-19T05:28:32.5058655Z             {
2026-06-19T05:28:32.5058809Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-19T05:28:32.5058918Z               "line": 202
2026-06-19T05:28:32.5059099Z             },
2026-06-19T05:28:32.5059199Z             {
2026-06-19T05:28:32.5059342Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.5059448Z               "line": 375
2026-06-19T05:28:32.5059556Z             },
2026-06-19T05:28:32.5059661Z             {
2026-06-19T05:28:32.5059800Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.5059923Z               "line": 407
2026-06-19T05:28:32.5060024Z             },
2026-06-19T05:28:32.5060144Z             {
2026-06-19T05:28:32.5060267Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5060382Z               "line": 9857
2026-06-19T05:28:32.5060482Z             }
2026-06-19T05:28:32.5060594Z           ]
2026-06-19T05:28:32.5060699Z         }
2026-06-19T05:28:32.5060801Z       }
2026-06-19T05:28:32.5060914Z     },
2026-06-19T05:28:32.5061014Z     {
2026-06-19T05:28:32.5061134Z       "id": "REQ-MESH-5",
2026-06-19T05:28:32.5062549Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-19T05:28:32.5062685Z       "requiredStages": [
2026-06-19T05:28:32.5062802Z         "impl",
2026-06-19T05:28:32.5062906Z         "unit"
2026-06-19T05:28:32.5063016Z       ],
2026-06-19T05:28:32.5063114Z       "stages": {
2026-06-19T05:28:32.5063218Z         "doc": {
2026-06-19T05:28:32.5063339Z           "complete": false,
2026-06-19T05:28:32.5063448Z           "evidence": []
2026-06-19T05:28:32.5063547Z         },
2026-06-19T05:28:32.5063677Z         "impl": {
2026-06-19T05:28:32.5063786Z           "complete": true,
2026-06-19T05:28:32.5063896Z           "evidence": [
2026-06-19T05:28:32.5063996Z             {
2026-06-19T05:28:32.5064162Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.5064269Z               "line": 61
2026-06-19T05:28:32.5064378Z             },
2026-06-19T05:28:32.5064472Z             {
2026-06-19T05:28:32.5064626Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.5064740Z               "line": 109
2026-06-19T05:28:32.5064840Z             },
2026-06-19T05:28:32.5065059Z             {
2026-06-19T05:28:32.5065208Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5065312Z               "line": 104
2026-06-19T05:28:32.5065417Z             },
2026-06-19T05:28:32.5065523Z             {
2026-06-19T05:28:32.5065669Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5065782Z               "line": 105
2026-06-19T05:28:32.5065990Z             },
2026-06-19T05:28:32.5066095Z             {
2026-06-19T05:28:32.5066258Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5066376Z               "line": 85
2026-06-19T05:28:32.5066472Z             },
2026-06-19T05:28:32.5066577Z             {
2026-06-19T05:28:32.5066738Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5066859Z               "line": 250
2026-06-19T05:28:32.5066963Z             },
2026-06-19T05:28:32.5067068Z             {
2026-06-19T05:28:32.5067220Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5067349Z               "line": 314
2026-06-19T05:28:32.5067451Z             },
2026-06-19T05:28:32.5067545Z             {
2026-06-19T05:28:32.5067702Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5067813Z               "line": 767
2026-06-19T05:28:32.5067921Z             },
2026-06-19T05:28:32.5068022Z             {
2026-06-19T05:28:32.5068179Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.5068292Z               "line": 101
2026-06-19T05:28:32.5068392Z             },
2026-06-19T05:28:32.5068496Z             {
2026-06-19T05:28:32.5068633Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5068744Z               "line": 193
2026-06-19T05:28:32.5068849Z             }
2026-06-19T05:28:32.5069029Z           ]
2026-06-19T05:28:32.5069130Z         },
2026-06-19T05:28:32.5069253Z         "int": {
2026-06-19T05:28:32.5069374Z           "complete": false,
2026-06-19T05:28:32.5069483Z           "evidence": []
2026-06-19T05:28:32.5069606Z         },
2026-06-19T05:28:32.5069712Z         "unit": {
2026-06-19T05:28:32.5069826Z           "complete": true,
2026-06-19T05:28:32.5069940Z           "evidence": [
2026-06-19T05:28:32.5070046Z             {
2026-06-19T05:28:32.5070207Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5070313Z               "line": 1009
2026-06-19T05:28:32.5070431Z             },
2026-06-19T05:28:32.5070531Z             {
2026-06-19T05:28:32.5070675Z               "path": "crates/spt-store/src/roster.rs",
2026-06-19T05:28:32.5070798Z               "line": 462
2026-06-19T05:28:32.5070904Z             }
2026-06-19T05:28:32.5071009Z           ]
2026-06-19T05:28:32.5071112Z         }
2026-06-19T05:28:32.5071221Z       }
2026-06-19T05:28:32.5071317Z     },
2026-06-19T05:28:32.5071422Z     {
2026-06-19T05:28:32.5071541Z       "id": "REQ-MESH-6",
2026-06-19T05:28:32.5072781Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-19T05:28:32.5072910Z       "requiredStages": [
2026-06-19T05:28:32.5073028Z         "impl",
2026-06-19T05:28:32.5073134Z         "unit"
2026-06-19T05:28:32.5073245Z       ],
2026-06-19T05:28:32.5073348Z       "stages": {
2026-06-19T05:28:32.5073457Z         "doc": {
2026-06-19T05:28:32.5073566Z           "complete": false,
2026-06-19T05:28:32.5073674Z           "evidence": []
2026-06-19T05:28:32.5073779Z         },
2026-06-19T05:28:32.5073889Z         "impl": {
2026-06-19T05:28:32.5074008Z           "complete": true,
2026-06-19T05:28:32.5074117Z           "evidence": [
2026-06-19T05:28:32.5074228Z             {
2026-06-19T05:28:32.5074360Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5074594Z               "line": 4057
2026-06-19T05:28:32.5074698Z             }
2026-06-19T05:28:32.5074805Z           ]
2026-06-19T05:28:32.5074909Z         },
2026-06-19T05:28:32.5075004Z         "int": {
2026-06-19T05:28:32.5075115Z           "complete": false,
2026-06-19T05:28:32.5075219Z           "evidence": []
2026-06-19T05:28:32.5075415Z         },
2026-06-19T05:28:32.5075520Z         "unit": {
2026-06-19T05:28:32.5075638Z           "complete": true,
2026-06-19T05:28:32.5075735Z           "evidence": [
2026-06-19T05:28:32.5075840Z             {
2026-06-19T05:28:32.5075982Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5076083Z               "line": 10390
2026-06-19T05:28:32.5076192Z             },
2026-06-19T05:28:32.5076296Z             {
2026-06-19T05:28:32.5076429Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5076542Z               "line": 10417
2026-06-19T05:28:32.5076646Z             },
2026-06-19T05:28:32.5076761Z             {
2026-06-19T05:28:32.5076889Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5076998Z               "line": 10441
2026-06-19T05:28:32.5077090Z             }
2026-06-19T05:28:32.5077190Z           ]
2026-06-19T05:28:32.5077299Z         }
2026-06-19T05:28:32.5077391Z       }
2026-06-19T05:28:32.5077496Z     },
2026-06-19T05:28:32.5077599Z     {
2026-06-19T05:28:32.5077715Z       "id": "REQ-MIGRATE-1",
2026-06-19T05:28:32.5077914Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-19T05:28:32.5078035Z       "requiredStages": [],
2026-06-19T05:28:32.5078129Z       "stages": {
2026-06-19T05:28:32.5078234Z         "doc": {
2026-06-19T05:28:32.5078354Z           "complete": false,
2026-06-19T05:28:32.5078462Z           "evidence": []
2026-06-19T05:28:32.5078563Z         },
2026-06-19T05:28:32.5078664Z         "impl": {
2026-06-19T05:28:32.5078786Z           "complete": false,
2026-06-19T05:28:32.5078904Z           "evidence": []
2026-06-19T05:28:32.5079132Z         },
2026-06-19T05:28:32.5079260Z         "int": {
2026-06-19T05:28:32.5079376Z           "complete": false,
2026-06-19T05:28:32.5079494Z           "evidence": []
2026-06-19T05:28:32.5079594Z         },
2026-06-19T05:28:32.5079690Z         "unit": {
2026-06-19T05:28:32.5079808Z           "complete": false,
2026-06-19T05:28:32.5079919Z           "evidence": []
2026-06-19T05:28:32.5080028Z         }
2026-06-19T05:28:32.5080133Z       }
2026-06-19T05:28:32.5080229Z     },
2026-06-19T05:28:32.5080329Z     {
2026-06-19T05:28:32.5080447Z       "id": "REQ-MSG-1",
2026-06-19T05:28:32.5080916Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-19T05:28:32.5081034Z       "requiredStages": [
2026-06-19T05:28:32.5081139Z         "impl",
2026-06-19T05:28:32.5081241Z         "unit",
2026-06-19T05:28:32.5081353Z         "int"
2026-06-19T05:28:32.5081454Z       ],
2026-06-19T05:28:32.5081565Z       "stages": {
2026-06-19T05:28:32.5081667Z         "doc": {
2026-06-19T05:28:32.5081772Z           "complete": false,
2026-06-19T05:28:32.5084343Z           "evidence": []
2026-06-19T05:28:32.5084474Z         },
2026-06-19T05:28:32.5084587Z         "impl": {
2026-06-19T05:28:32.5084696Z           "complete": true,
2026-06-19T05:28:32.5084816Z           "evidence": [
2026-06-19T05:28:32.5084925Z             {
2026-06-19T05:28:32.5085084Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.5085197Z               "line": 28
2026-06-19T05:28:32.5085297Z             },
2026-06-19T05:28:32.5085403Z             {
2026-06-19T05:28:32.5085550Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.5085655Z               "line": 94
2026-06-19T05:28:32.5085770Z             },
2026-06-19T05:28:32.5085870Z             {
2026-06-19T05:28:32.5086014Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.5086127Z               "line": 127
2026-06-19T05:28:32.5086376Z             },
2026-06-19T05:28:32.5086479Z             {
2026-06-19T05:28:32.5086619Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.5086729Z               "line": 149
2026-06-19T05:28:32.5086822Z             },
2026-06-19T05:28:32.5086927Z             {
2026-06-19T05:28:32.5087069Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.5087292Z               "line": 174
2026-06-19T05:28:32.5087388Z             },
2026-06-19T05:28:32.5087492Z             {
2026-06-19T05:28:32.5087641Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:28:32.5087746Z               "line": 18
2026-06-19T05:28:32.5087849Z             },
2026-06-19T05:28:32.5087951Z             {
2026-06-19T05:28:32.5088084Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:28:32.5088188Z               "line": 13
2026-06-19T05:28:32.5088289Z             },
2026-06-19T05:28:32.5088389Z             {
2026-06-19T05:28:32.5088517Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:28:32.5088637Z               "line": 62
2026-06-19T05:28:32.5088737Z             },
2026-06-19T05:28:32.5088837Z             {
2026-06-19T05:28:32.5089041Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:28:32.5089157Z               "line": 13
2026-06-19T05:28:32.5089262Z             }
2026-06-19T05:28:32.5089365Z           ]
2026-06-19T05:28:32.5089469Z         },
2026-06-19T05:28:32.5089570Z         "int": {
2026-06-19T05:28:32.5089687Z           "complete": true,
2026-06-19T05:28:32.5089796Z           "evidence": [
2026-06-19T05:28:32.5089893Z             {
2026-06-19T05:28:32.5090063Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-19T05:28:32.5090169Z               "line": 9
2026-06-19T05:28:32.5090274Z             },
2026-06-19T05:28:32.5090378Z             {
2026-06-19T05:28:32.5090546Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-19T05:28:32.5090659Z               "line": 56
2026-06-19T05:28:32.5090765Z             },
2026-06-19T05:28:32.5090870Z             {
2026-06-19T05:28:32.5091032Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-19T05:28:32.5091143Z               "line": 113
2026-06-19T05:28:32.5091241Z             }
2026-06-19T05:28:32.5091351Z           ]
2026-06-19T05:28:32.5091452Z         },
2026-06-19T05:28:32.5091561Z         "unit": {
2026-06-19T05:28:32.5091671Z           "complete": true,
2026-06-19T05:28:32.5091772Z           "evidence": [
2026-06-19T05:28:32.5091870Z             {
2026-06-19T05:28:32.5092005Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.5092116Z               "line": 203
2026-06-19T05:28:32.5092218Z             },
2026-06-19T05:28:32.5092313Z             {
2026-06-19T05:28:32.5092452Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.5092552Z               "line": 232
2026-06-19T05:28:32.5092656Z             },
2026-06-19T05:28:32.5092757Z             {
2026-06-19T05:28:32.5092904Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.5093015Z               "line": 277
2026-06-19T05:28:32.5093115Z             },
2026-06-19T05:28:32.5093219Z             {
2026-06-19T05:28:32.5093353Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.5093458Z               "line": 300
2026-06-19T05:28:32.5093562Z             },
2026-06-19T05:28:32.5093668Z             {
2026-06-19T05:28:32.5093806Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-19T05:28:32.5093906Z               "line": 325
2026-06-19T05:28:32.5094012Z             },
2026-06-19T05:28:32.5094111Z             {
2026-06-19T05:28:32.5094259Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:28:32.5094369Z               "line": 204
2026-06-19T05:28:32.5094473Z             },
2026-06-19T05:28:32.5094577Z             {
2026-06-19T05:28:32.5094710Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:28:32.5094823Z               "line": 237
2026-06-19T05:28:32.5095029Z             },
2026-06-19T05:28:32.5095133Z             {
2026-06-19T05:28:32.5095271Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:28:32.5095381Z               "line": 251
2026-06-19T05:28:32.5095490Z             },
2026-06-19T05:28:32.5095586Z             {
2026-06-19T05:28:32.5095724Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:28:32.5095939Z               "line": 263
2026-06-19T05:28:32.5096048Z             },
2026-06-19T05:28:32.5096148Z             {
2026-06-19T05:28:32.5096282Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:28:32.5096392Z               "line": 162
2026-06-19T05:28:32.5096496Z             },
2026-06-19T05:28:32.5096597Z             {
2026-06-19T05:28:32.5096730Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-19T05:28:32.5096840Z               "line": 242
2026-06-19T05:28:32.5096936Z             },
2026-06-19T05:28:32.5097040Z             {
2026-06-19T05:28:32.5097179Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:28:32.5097279Z               "line": 134
2026-06-19T05:28:32.5097382Z             },
2026-06-19T05:28:32.5097477Z             {
2026-06-19T05:28:32.5097615Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:28:32.5097727Z               "line": 153
2026-06-19T05:28:32.5097828Z             }
2026-06-19T05:28:32.5097938Z           ]
2026-06-19T05:28:32.5098038Z         }
2026-06-19T05:28:32.5098133Z       }
2026-06-19T05:28:32.5098235Z     },
2026-06-19T05:28:32.5098338Z     {
2026-06-19T05:28:32.5098438Z       "id": "REQ-MSG-2",
2026-06-19T05:28:32.5098739Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-19T05:28:32.5098859Z       "requiredStages": [
2026-06-19T05:28:32.5099039Z         "impl",
2026-06-19T05:28:32.5099145Z         "unit"
2026-06-19T05:28:32.5099249Z       ],
2026-06-19T05:28:32.5099349Z       "stages": {
2026-06-19T05:28:32.5099460Z         "doc": {
2026-06-19T05:28:32.5099582Z           "complete": false,
2026-06-19T05:28:32.5099698Z           "evidence": []
2026-06-19T05:28:32.5099799Z         },
2026-06-19T05:28:32.5099902Z         "impl": {
2026-06-19T05:28:32.5100015Z           "complete": true,
2026-06-19T05:28:32.5100125Z           "evidence": [
2026-06-19T05:28:32.5100224Z             {
2026-06-19T05:28:32.5100361Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5100462Z               "line": 11
2026-06-19T05:28:32.5100567Z             },
2026-06-19T05:28:32.5100666Z             {
2026-06-19T05:28:32.5100787Z               "path": "crates/spt/src/main.rs",
2026-06-19T05:28:32.5100895Z               "line": 8
2026-06-19T05:28:32.5101005Z             }
2026-06-19T05:28:32.5101106Z           ]
2026-06-19T05:28:32.5101206Z         },
2026-06-19T05:28:32.5101310Z         "int": {
2026-06-19T05:28:32.5101426Z           "complete": false,
2026-06-19T05:28:32.5101530Z           "evidence": []
2026-06-19T05:28:32.5101639Z         },
2026-06-19T05:28:32.5101741Z         "unit": {
2026-06-19T05:28:32.5101850Z           "complete": true,
2026-06-19T05:28:32.5101964Z           "evidence": [
2026-06-19T05:28:32.5102056Z             {
2026-06-19T05:28:32.5102188Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5102294Z               "line": 7574
2026-06-19T05:28:32.5102403Z             },
2026-06-19T05:28:32.5102507Z             {
2026-06-19T05:28:32.5102637Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5102746Z               "line": 7616
2026-06-19T05:28:32.5102850Z             },
2026-06-19T05:28:32.5102945Z             {
2026-06-19T05:28:32.5103070Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5103178Z               "line": 7665
2026-06-19T05:28:32.5103279Z             },
2026-06-19T05:28:32.5103379Z             {
2026-06-19T05:28:32.5103507Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5103609Z               "line": 7688
2026-06-19T05:28:32.5103817Z             },
2026-06-19T05:28:32.5103908Z             {
2026-06-19T05:28:32.5104042Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5104151Z               "line": 9612
2026-06-19T05:28:32.5104252Z             },
2026-06-19T05:28:32.5104361Z             {
2026-06-19T05:28:32.5104494Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5104704Z               "line": 9621
2026-06-19T05:28:32.5104805Z             },
2026-06-19T05:28:32.5104902Z             {
2026-06-19T05:28:32.5105033Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5105142Z               "line": 9635
2026-06-19T05:28:32.5105238Z             }
2026-06-19T05:28:32.5105336Z           ]
2026-06-19T05:28:32.5105439Z         }
2026-06-19T05:28:32.5105536Z       }
2026-06-19T05:28:32.5105637Z     },
2026-06-19T05:28:32.5105736Z     {
2026-06-19T05:28:32.5105846Z       "id": "REQ-MSG-3",
2026-06-19T05:28:32.5106266Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-19T05:28:32.5106398Z       "requiredStages": [
2026-06-19T05:28:32.5106509Z         "impl",
2026-06-19T05:28:32.5106599Z         "unit",
2026-06-19T05:28:32.5106704Z         "int"
2026-06-19T05:28:32.5106805Z       ],
2026-06-19T05:28:32.5106909Z       "stages": {
2026-06-19T05:28:32.5107004Z         "doc": {
2026-06-19T05:28:32.5107125Z           "complete": false,
2026-06-19T05:28:32.5107228Z           "evidence": []
2026-06-19T05:28:32.5107324Z         },
2026-06-19T05:28:32.5107435Z         "impl": {
2026-06-19T05:28:32.5107552Z           "complete": true,
2026-06-19T05:28:32.5107653Z           "evidence": [
2026-06-19T05:28:32.5107754Z             {
2026-06-19T05:28:32.5107900Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-19T05:28:32.5108004Z               "line": 19
2026-06-19T05:28:32.5108105Z             },
2026-06-19T05:28:32.5108203Z             {
2026-06-19T05:28:32.5108345Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.5108456Z               "line": 21
2026-06-19T05:28:32.5108555Z             },
2026-06-19T05:28:32.5108660Z             {
2026-06-19T05:28:32.5108804Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.5108898Z               "line": 48
2026-06-19T05:28:32.5109071Z             },
2026-06-19T05:28:32.5109176Z             {
2026-06-19T05:28:32.5109304Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.5109405Z               "line": 172
2026-06-19T05:28:32.5109509Z             }
2026-06-19T05:28:32.5109609Z           ]
2026-06-19T05:28:32.5109705Z         },
2026-06-19T05:28:32.5109805Z         "int": {
2026-06-19T05:28:32.5109919Z           "complete": true,
2026-06-19T05:28:32.5110029Z           "evidence": [
2026-06-19T05:28:32.5110129Z             {
2026-06-19T05:28:32.5110297Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-19T05:28:32.5110406Z               "line": 10
2026-06-19T05:28:32.5110499Z             },
2026-06-19T05:28:32.5110604Z             {
2026-06-19T05:28:32.5110770Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-19T05:28:32.5110878Z               "line": 56
2026-06-19T05:28:32.5110979Z             }
2026-06-19T05:28:32.5111080Z           ]
2026-06-19T05:28:32.5111174Z         },
2026-06-19T05:28:32.5111270Z         "unit": {
2026-06-19T05:28:32.5111389Z           "complete": true,
2026-06-19T05:28:32.5111508Z           "evidence": [
2026-06-19T05:28:32.5111609Z             {
2026-06-19T05:28:32.5111733Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.5111841Z               "line": 226
2026-06-19T05:28:32.5111948Z             },
2026-06-19T05:28:32.5112051Z             {
2026-06-19T05:28:32.5112176Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.5112282Z               "line": 245
2026-06-19T05:28:32.5112386Z             },
2026-06-19T05:28:32.5112491Z             {
2026-06-19T05:28:32.5112724Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.5112834Z               "line": 268
2026-06-19T05:28:32.5112935Z             }
2026-06-19T05:28:32.5113033Z           ]
2026-06-19T05:28:32.5113140Z         }
2026-06-19T05:28:32.5113240Z       }
2026-06-19T05:28:32.5113343Z     },
2026-06-19T05:28:32.5113443Z     {
2026-06-19T05:28:32.5113553Z       "id": "REQ-MSG-4",
2026-06-19T05:28:32.5114541Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-19T05:28:32.5114663Z       "requiredStages": [
2026-06-19T05:28:32.5114774Z         "impl",
2026-06-19T05:28:32.5114870Z         "unit",
2026-06-19T05:28:32.5114974Z         "int"
2026-06-19T05:28:32.5115074Z       ],
2026-06-19T05:28:32.5115185Z       "stages": {
2026-06-19T05:28:32.5115288Z         "doc": {
2026-06-19T05:28:32.5115418Z           "complete": false,
2026-06-19T05:28:32.5115523Z           "evidence": []
2026-06-19T05:28:32.5115621Z         },
2026-06-19T05:28:32.5115731Z         "impl": {
2026-06-19T05:28:32.5115845Z           "complete": true,
2026-06-19T05:28:32.5115953Z           "evidence": [
2026-06-19T05:28:32.5116058Z             {
2026-06-19T05:28:32.5116192Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5116319Z               "line": 19
2026-06-19T05:28:32.5116420Z             },
2026-06-19T05:28:32.5116525Z             {
2026-06-19T05:28:32.5116657Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5116773Z               "line": 46
2026-06-19T05:28:32.5116873Z             },
2026-06-19T05:28:32.5116972Z             {
2026-06-19T05:28:32.5117121Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5117254Z               "line": 501
2026-06-19T05:28:32.5117355Z             },
2026-06-19T05:28:32.5117454Z             {
2026-06-19T05:28:32.5117583Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5117690Z               "line": 2986
2026-06-19T05:28:32.5117779Z             }
2026-06-19T05:28:32.5117879Z           ]
2026-06-19T05:28:32.5117980Z         },
2026-06-19T05:28:32.5118089Z         "int": {
2026-06-19T05:28:32.5118199Z           "complete": true,
2026-06-19T05:28:32.5118309Z           "evidence": [
2026-06-19T05:28:32.5118418Z             {
2026-06-19T05:28:32.5118574Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-19T05:28:32.5118688Z               "line": 98
2026-06-19T05:28:32.5118786Z             },
2026-06-19T05:28:32.5118886Z             {
2026-06-19T05:28:32.5119097Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-19T05:28:32.5119205Z               "line": 128
2026-06-19T05:28:32.5119311Z             }
2026-06-19T05:28:32.5119412Z           ]
2026-06-19T05:28:32.5119511Z         },
2026-06-19T05:28:32.5119612Z         "unit": {
2026-06-19T05:28:32.5119736Z           "complete": true,
2026-06-19T05:28:32.5119844Z           "evidence": [
2026-06-19T05:28:32.5119951Z             {
2026-06-19T05:28:32.5120084Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5120188Z               "line": 68
2026-06-19T05:28:32.5120289Z             },
2026-06-19T05:28:32.5120379Z             {
2026-06-19T05:28:32.5120523Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5120628Z               "line": 79
2026-06-19T05:28:32.5120731Z             },
2026-06-19T05:28:32.5120833Z             {
2026-06-19T05:28:32.5120962Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5121069Z               "line": 90
2026-06-19T05:28:32.5121174Z             },
2026-06-19T05:28:32.5121269Z             {
2026-06-19T05:28:32.5121400Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5121511Z               "line": 151
2026-06-19T05:28:32.5121616Z             }
2026-06-19T05:28:32.5121715Z           ]
2026-06-19T05:28:32.5121935Z         }
2026-06-19T05:28:32.5122025Z       }
2026-06-19T05:28:32.5122125Z     },
2026-06-19T05:28:32.5122221Z     {
2026-06-19T05:28:32.5122331Z       "id": "REQ-MSG-5",
2026-06-19T05:28:32.5123104Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-19T05:28:32.5123318Z       "requiredStages": [
2026-06-19T05:28:32.5123424Z         "doc",
2026-06-19T05:28:32.5123528Z         "impl",
2026-06-19T05:28:32.5123642Z         "unit"
2026-06-19T05:28:32.5123743Z       ],
2026-06-19T05:28:32.5123852Z       "stages": {
2026-06-19T05:28:32.5123955Z         "doc": {
2026-06-19T05:28:32.5124070Z           "complete": true,
2026-06-19T05:28:32.5124176Z           "evidence": [
2026-06-19T05:28:32.5124270Z             {
2026-06-19T05:28:32.5124390Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.5124514Z               "line": 231
2026-06-19T05:28:32.5124623Z             }
2026-06-19T05:28:32.5124724Z           ]
2026-06-19T05:28:32.5124823Z         },
2026-06-19T05:28:32.5124928Z         "impl": {
2026-06-19T05:28:32.5125034Z           "complete": true,
2026-06-19T05:28:32.5125138Z           "evidence": [
2026-06-19T05:28:32.5125247Z             {
2026-06-19T05:28:32.5125392Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:28:32.5125500Z               "line": 60
2026-06-19T05:28:32.5125605Z             },
2026-06-19T05:28:32.5125711Z             {
2026-06-19T05:28:32.5125843Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.5125949Z               "line": 126
2026-06-19T05:28:32.5126060Z             },
2026-06-19T05:28:32.5126163Z             {
2026-06-19T05:28:32.5126310Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.5126419Z               "line": 135
2026-06-19T05:28:32.5126527Z             },
2026-06-19T05:28:32.5126632Z             {
2026-06-19T05:28:32.5126776Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.5126880Z               "line": 149
2026-06-19T05:28:32.5126980Z             },
2026-06-19T05:28:32.5127086Z             {
2026-06-19T05:28:32.5127222Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.5127338Z               "line": 178
2026-06-19T05:28:32.5127447Z             },
2026-06-19T05:28:32.5127552Z             {
2026-06-19T05:28:32.5127691Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5127795Z               "line": 2678
2026-06-19T05:28:32.5127896Z             }
2026-06-19T05:28:32.5128001Z           ]
2026-06-19T05:28:32.5128105Z         },
2026-06-19T05:28:32.5128206Z         "int": {
2026-06-19T05:28:32.5128325Z           "complete": true,
2026-06-19T05:28:32.5128439Z           "evidence": [
2026-06-19T05:28:32.5128536Z             {
2026-06-19T05:28:32.5128691Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-19T05:28:32.5128802Z               "line": 19
2026-06-19T05:28:32.5128908Z             }
2026-06-19T05:28:32.5129073Z           ]
2026-06-19T05:28:32.5129177Z         },
2026-06-19T05:28:32.5129286Z         "unit": {
2026-06-19T05:28:32.5129404Z           "complete": true,
2026-06-19T05:28:32.5129518Z           "evidence": [
2026-06-19T05:28:32.5129624Z             {
2026-06-19T05:28:32.5129770Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:28:32.5129881Z               "line": 192
2026-06-19T05:28:32.5129986Z             },
2026-06-19T05:28:32.5130090Z             {
2026-06-19T05:28:32.5130243Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-19T05:28:32.5130347Z               "line": 154
2026-06-19T05:28:32.5130448Z             },
2026-06-19T05:28:32.5130553Z             {
2026-06-19T05:28:32.5130677Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5130792Z               "line": 122
2026-06-19T05:28:32.5130887Z             },
2026-06-19T05:28:32.5131097Z             {
2026-06-19T05:28:32.5131239Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.5131349Z               "line": 452
2026-06-19T05:28:32.5131456Z             },
2026-06-19T05:28:32.5131550Z             {
2026-06-19T05:28:32.5131696Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.5131899Z               "line": 501
2026-06-19T05:28:32.5131998Z             },
2026-06-19T05:28:32.5132104Z             {
2026-06-19T05:28:32.5132238Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.5132347Z               "line": 517
2026-06-19T05:28:32.5132448Z             },
2026-06-19T05:28:32.5132553Z             {
2026-06-19T05:28:32.5132700Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.5132805Z               "line": 536
2026-06-19T05:28:32.5132910Z             },
2026-06-19T05:28:32.5133015Z             {
2026-06-19T05:28:32.5133148Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5133276Z               "line": 7517
2026-06-19T05:28:32.5133378Z             }
2026-06-19T05:28:32.5133487Z           ]
2026-06-19T05:28:32.5133587Z         }
2026-06-19T05:28:32.5133693Z       }
2026-06-19T05:28:32.5133792Z     },
2026-06-19T05:28:32.5133892Z     {
2026-06-19T05:28:32.5134013Z       "id": "REQ-MSG-6",
2026-06-19T05:28:32.5135651Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-19T05:28:32.5135780Z       "requiredStages": [
2026-06-19T05:28:32.5135889Z         "doc",
2026-06-19T05:28:32.5136009Z         "impl",
2026-06-19T05:28:32.5136118Z         "unit"
2026-06-19T05:28:32.5136219Z       ],
2026-06-19T05:28:32.5136319Z       "stages": {
2026-06-19T05:28:32.5136428Z         "doc": {
2026-06-19T05:28:32.5136543Z           "complete": true,
2026-06-19T05:28:32.5136643Z           "evidence": [
2026-06-19T05:28:32.5136751Z             {
2026-06-19T05:28:32.5136880Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.5136989Z               "line": 234
2026-06-19T05:28:32.5137102Z             }
2026-06-19T05:28:32.5137202Z           ]
2026-06-19T05:28:32.5137313Z         },
2026-06-19T05:28:32.5137416Z         "impl": {
2026-06-19T05:28:32.5137531Z           "complete": true,
2026-06-19T05:28:32.5137641Z           "evidence": [
2026-06-19T05:28:32.5137740Z             {
2026-06-19T05:28:32.5137913Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5138017Z               "line": 177
2026-06-19T05:28:32.5138122Z             },
2026-06-19T05:28:32.5138223Z             {
2026-06-19T05:28:32.5138388Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5138495Z               "line": 428
2026-06-19T05:28:32.5138598Z             },
2026-06-19T05:28:32.5138699Z             {
2026-06-19T05:28:32.5138843Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5139032Z               "line": 451
2026-06-19T05:28:32.5139149Z             },
2026-06-19T05:28:32.5139256Z             {
2026-06-19T05:28:32.5139401Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:28:32.5139501Z               "line": 89
2026-06-19T05:28:32.5139609Z             },
2026-06-19T05:28:32.5139713Z             {
2026-06-19T05:28:32.5139860Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5139968Z               "line": 155
2026-06-19T05:28:32.5140069Z             }
2026-06-19T05:28:32.5140174Z           ]
2026-06-19T05:28:32.5140273Z         },
2026-06-19T05:28:32.5140379Z         "int": {
2026-06-19T05:28:32.5140607Z           "complete": false,
2026-06-19T05:28:32.5140723Z           "evidence": []
2026-06-19T05:28:32.5140822Z         },
2026-06-19T05:28:32.5140927Z         "unit": {
2026-06-19T05:28:32.5141047Z           "complete": true,
2026-06-19T05:28:32.5141156Z           "evidence": [
2026-06-19T05:28:32.5141261Z             {
2026-06-19T05:28:32.5141414Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5141628Z               "line": 1746
2026-06-19T05:28:32.5141734Z             },
2026-06-19T05:28:32.5141833Z             {
2026-06-19T05:28:32.5141977Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:28:32.5142086Z               "line": 219
2026-06-19T05:28:32.5142195Z             }
2026-06-19T05:28:32.5142294Z           ]
2026-06-19T05:28:32.5142399Z         }
2026-06-19T05:28:32.5142502Z       }
2026-06-19T05:28:32.5142607Z     },
2026-06-19T05:28:32.5142713Z     {
2026-06-19T05:28:32.5142836Z       "id": "REQ-MSG-ENVELOPE",
2026-06-19T05:28:32.5146531Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-19T05:28:32.5146725Z       "requiredStages": [
2026-06-19T05:28:32.5146827Z         "doc",
2026-06-19T05:28:32.5146935Z         "impl",
2026-06-19T05:28:32.5147055Z         "unit",
2026-06-19T05:28:32.5147156Z         "int"
2026-06-19T05:28:32.5147264Z       ],
2026-06-19T05:28:32.5147368Z       "stages": {
2026-06-19T05:28:32.5147473Z         "doc": {
2026-06-19T05:28:32.5147591Z           "complete": true,
2026-06-19T05:28:32.5147700Z           "evidence": [
2026-06-19T05:28:32.5147805Z             {
2026-06-19T05:28:32.5148062Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-19T05:28:32.5148177Z               "line": 47
2026-06-19T05:28:32.5148281Z             }
2026-06-19T05:28:32.5148387Z           ]
2026-06-19T05:28:32.5148515Z         },
2026-06-19T05:28:32.5148619Z         "impl": {
2026-06-19T05:28:32.5148740Z           "complete": true,
2026-06-19T05:28:32.5148844Z           "evidence": [
2026-06-19T05:28:32.5149055Z             {
2026-06-19T05:28:32.5149202Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5149311Z               "line": 20
2026-06-19T05:28:32.5149422Z             },
2026-06-19T05:28:32.5149526Z             {
2026-06-19T05:28:32.5149661Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5149775Z               "line": 33
2026-06-19T05:28:32.5149879Z             },
2026-06-19T05:28:32.5149975Z             {
2026-06-19T05:28:32.5150103Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5150221Z               "line": 47
2026-06-19T05:28:32.5150317Z             },
2026-06-19T05:28:32.5150421Z             {
2026-06-19T05:28:32.5150567Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5150672Z               "line": 58
2026-06-19T05:28:32.5150891Z             },
2026-06-19T05:28:32.5150992Z             {
2026-06-19T05:28:32.5151139Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:28:32.5151239Z               "line": 14
2026-06-19T05:28:32.5151336Z             },
2026-06-19T05:28:32.5151440Z             {
2026-06-19T05:28:32.5151568Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:28:32.5151769Z               "line": 27
2026-06-19T05:28:32.5151873Z             },
2026-06-19T05:28:32.5151979Z             {
2026-06-19T05:28:32.5152111Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:28:32.5152223Z               "line": 40
2026-06-19T05:28:32.5152336Z             },
2026-06-19T05:28:32.5152441Z             {
2026-06-19T05:28:32.5152590Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.5152698Z               "line": 92
2026-06-19T05:28:32.5152811Z             },
2026-06-19T05:28:32.5152907Z             {
2026-06-19T05:28:32.5153072Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5153191Z               "line": 143
2026-06-19T05:28:32.5153292Z             },
2026-06-19T05:28:32.5153400Z             {
2026-06-19T05:28:32.5153530Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5153654Z               "line": 216
2026-06-19T05:28:32.5153758Z             },
2026-06-19T05:28:32.5153864Z             {
2026-06-19T05:28:32.5154002Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5154101Z               "line": 502
2026-06-19T05:28:32.5154207Z             },
2026-06-19T05:28:32.5154311Z             {
2026-06-19T05:28:32.5154450Z               "path": "crates/spt/src/api/worker.rs",
2026-06-19T05:28:32.5154550Z               "line": 78
2026-06-19T05:28:32.5154660Z             },
2026-06-19T05:28:32.5154770Z             {
2026-06-19T05:28:32.5154898Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5155017Z               "line": 2987
2026-06-19T05:28:32.5155128Z             }
2026-06-19T05:28:32.5155231Z           ]
2026-06-19T05:28:32.5155332Z         },
2026-06-19T05:28:32.5155443Z         "int": {
2026-06-19T05:28:32.5155565Z           "complete": true,
2026-06-19T05:28:32.5155669Z           "evidence": [
2026-06-19T05:28:32.5155780Z             {
2026-06-19T05:28:32.5155937Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-19T05:28:32.5156060Z               "line": 15
2026-06-19T05:28:32.5156166Z             }
2026-06-19T05:28:32.5156260Z           ]
2026-06-19T05:28:32.5156361Z         },
2026-06-19T05:28:32.5156462Z         "unit": {
2026-06-19T05:28:32.5156585Z           "complete": true,
2026-06-19T05:28:32.5156690Z           "evidence": [
2026-06-19T05:28:32.5156900Z             {
2026-06-19T05:28:32.5157034Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5157138Z               "line": 102
2026-06-19T05:28:32.5157243Z             },
2026-06-19T05:28:32.5157339Z             {
2026-06-19T05:28:32.5157481Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-19T05:28:32.5157586Z               "line": 137
2026-06-19T05:28:32.5157693Z             },
2026-06-19T05:28:32.5157796Z             {
2026-06-19T05:28:32.5157933Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:28:32.5158043Z               "line": 98
2026-06-19T05:28:32.5158151Z             },
2026-06-19T05:28:32.5158255Z             {
2026-06-19T05:28:32.5158390Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:28:32.5158499Z               "line": 106
2026-06-19T05:28:32.5158603Z             },
2026-06-19T05:28:32.5158704Z             {
2026-06-19T05:28:32.5158851Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:28:32.5159038Z               "line": 113
2026-06-19T05:28:32.5159152Z             },
2026-06-19T05:28:32.5159252Z             {
2026-06-19T05:28:32.5159386Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-19T05:28:32.5159499Z               "line": 122
2026-06-19T05:28:32.5159728Z             }
2026-06-19T05:28:32.5159833Z           ]
2026-06-19T05:28:32.5159939Z         }
2026-06-19T05:28:32.5160039Z       }
2026-06-19T05:28:32.5160138Z     },
2026-06-19T05:28:32.5160245Z     {
2026-06-19T05:28:32.5160358Z       "id": "REQ-NET-1",
2026-06-19T05:28:32.5160574Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-19T05:28:32.5160791Z       "requiredStages": [
2026-06-19T05:28:32.5160896Z         "impl",
2026-06-19T05:28:32.5161004Z         "unit",
2026-06-19T05:28:32.5161103Z         "int"
2026-06-19T05:28:32.5161208Z       ],
2026-06-19T05:28:32.5161314Z       "stages": {
2026-06-19T05:28:32.5161422Z         "doc": {
2026-06-19T05:28:32.5161543Z           "complete": false,
2026-06-19T05:28:32.5161648Z           "evidence": []
2026-06-19T05:28:32.5161756Z         },
2026-06-19T05:28:32.5161857Z         "impl": {
2026-06-19T05:28:32.5161972Z           "complete": true,
2026-06-19T05:28:32.5162080Z           "evidence": [
2026-06-19T05:28:32.5162196Z             {
2026-06-19T05:28:32.5162357Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.5162468Z               "line": 54
2026-06-19T05:28:32.5162572Z             },
2026-06-19T05:28:32.5162676Z             {
2026-06-19T05:28:32.5162826Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.5162938Z               "line": 594
2026-06-19T05:28:32.5163034Z             },
2026-06-19T05:28:32.5163141Z             {
2026-06-19T05:28:32.5163272Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-19T05:28:32.5163385Z               "line": 130
2026-06-19T05:28:32.5163486Z             },
2026-06-19T05:28:32.5163594Z             {
2026-06-19T05:28:32.5163751Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5163852Z               "line": 97
2026-06-19T05:28:32.5163951Z             },
2026-06-19T05:28:32.5164056Z             {
2026-06-19T05:28:32.5164205Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5164313Z               "line": 159
2026-06-19T05:28:32.5164420Z             },
2026-06-19T05:28:32.5164529Z             {
2026-06-19T05:28:32.5164671Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5164782Z               "line": 175
2026-06-19T05:28:32.5164886Z             },
2026-06-19T05:28:32.5164990Z             {
2026-06-19T05:28:32.5165134Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5165243Z               "line": 190
2026-06-19T05:28:32.5165349Z             },
2026-06-19T05:28:32.5165453Z             {
2026-06-19T05:28:32.5165606Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5165712Z               "line": 271
2026-06-19T05:28:32.5165815Z             },
2026-06-19T05:28:32.5165911Z             {
2026-06-19T05:28:32.5166055Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5166172Z               "line": 306
2026-06-19T05:28:32.5166282Z             },
2026-06-19T05:28:32.5166392Z             {
2026-06-19T05:28:32.5166535Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5166645Z               "line": 312
2026-06-19T05:28:32.5166740Z             },
2026-06-19T05:28:32.5169778Z             {
2026-06-19T05:28:32.5169979Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5170093Z               "line": 318
2026-06-19T05:28:32.5170213Z             },
2026-06-19T05:28:32.5170318Z             {
2026-06-19T05:28:32.5170481Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5170589Z               "line": 334
2026-06-19T05:28:32.5170694Z             },
2026-06-19T05:28:32.5170800Z             {
2026-06-19T05:28:32.5170951Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5171062Z               "line": 354
2026-06-19T05:28:32.5171162Z             },
2026-06-19T05:28:32.5171266Z             {
2026-06-19T05:28:32.5171418Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:28:32.5171682Z               "line": 35
2026-06-19T05:28:32.5171787Z             },
2026-06-19T05:28:32.5171888Z             {
2026-06-19T05:28:32.5172030Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:28:32.5172136Z               "line": 85
2026-06-19T05:28:32.5172236Z             },
2026-06-19T05:28:32.5172340Z             {
2026-06-19T05:28:32.5172588Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.5172703Z               "line": 138
2026-06-19T05:28:32.5172799Z             },
2026-06-19T05:28:32.5172894Z             {
2026-06-19T05:28:32.5173018Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5173123Z               "line": 2829
2026-06-19T05:28:32.5173232Z             },
2026-06-19T05:28:32.5173333Z             {
2026-06-19T05:28:32.5173471Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.5173570Z               "line": 17
2026-06-19T05:28:32.5173677Z             }
2026-06-19T05:28:32.5173781Z           ]
2026-06-19T05:28:32.5173884Z         },
2026-06-19T05:28:32.5173989Z         "int": {
2026-06-19T05:28:32.5174108Z           "complete": true,
2026-06-19T05:28:32.5174220Z           "evidence": [
2026-06-19T05:28:32.5174316Z             {
2026-06-19T05:28:32.5174474Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.5174587Z               "line": 341
2026-06-19T05:28:32.5174698Z             },
2026-06-19T05:28:32.5174802Z             {
2026-06-19T05:28:32.5174955Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5175060Z               "line": 674
2026-06-19T05:28:32.5175154Z             },
2026-06-19T05:28:32.5175251Z             {
2026-06-19T05:28:32.5175398Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5175508Z               "line": 972
2026-06-19T05:28:32.5175614Z             }
2026-06-19T05:28:32.5175713Z           ]
2026-06-19T05:28:32.5175813Z         },
2026-06-19T05:28:32.5175909Z         "unit": {
2026-06-19T05:28:32.5176032Z           "complete": true,
2026-06-19T05:28:32.5176147Z           "evidence": [
2026-06-19T05:28:32.5176253Z             {
2026-06-19T05:28:32.5176404Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.5176510Z               "line": 651
2026-06-19T05:28:32.5176620Z             },
2026-06-19T05:28:32.5176728Z             {
2026-06-19T05:28:32.5176875Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.5176991Z               "line": 686
2026-06-19T05:28:32.5177095Z             },
2026-06-19T05:28:32.5177200Z             {
2026-06-19T05:28:32.5177352Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.5177461Z               "line": 938
2026-06-19T05:28:32.5177563Z             },
2026-06-19T05:28:32.5177667Z             {
2026-06-19T05:28:32.5177810Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-19T05:28:32.5177920Z               "line": 201
2026-06-19T05:28:32.5178029Z             },
2026-06-19T05:28:32.5178130Z             {
2026-06-19T05:28:32.5178272Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5178382Z               "line": 442
2026-06-19T05:28:32.5178488Z             },
2026-06-19T05:28:32.5178587Z             {
2026-06-19T05:28:32.5178735Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5178864Z               "line": 456
2026-06-19T05:28:32.5179044Z             },
2026-06-19T05:28:32.5179149Z             {
2026-06-19T05:28:32.5179285Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5179399Z               "line": 475
2026-06-19T05:28:32.5179500Z             },
2026-06-19T05:28:32.5179600Z             {
2026-06-19T05:28:32.5179752Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:28:32.5179858Z               "line": 120
2026-06-19T05:28:32.5179962Z             },
2026-06-19T05:28:32.5180062Z             {
2026-06-19T05:28:32.5180323Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-19T05:28:32.5180439Z               "line": 163
2026-06-19T05:28:32.5180539Z             },
2026-06-19T05:28:32.5180643Z             {
2026-06-19T05:28:32.5180787Z               "path": "crates/spt-store/src/spool.rs",
2026-06-19T05:28:32.5180901Z               "line": 530
2026-06-19T05:28:32.5181002Z             },
2026-06-19T05:28:32.5181206Z             {
2026-06-19T05:28:32.5181351Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.5181455Z               "line": 616
2026-06-19T05:28:32.5181560Z             },
2026-06-19T05:28:32.5181660Z             {
2026-06-19T05:28:32.5181798Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.5181901Z               "line": 1006
2026-06-19T05:28:32.5182007Z             }
2026-06-19T05:28:32.5182105Z           ]
2026-06-19T05:28:32.5182204Z         }
2026-06-19T05:28:32.5182305Z       }
2026-06-19T05:28:32.5182401Z     },
2026-06-19T05:28:32.5182510Z     {
2026-06-19T05:28:32.5182629Z       "id": "REQ-NET-2",
2026-06-19T05:28:32.5182848Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-19T05:28:32.5182954Z       "requiredStages": [
2026-06-19T05:28:32.5183063Z         "impl"
2026-06-19T05:28:32.5183163Z       ],
2026-06-19T05:28:32.5183268Z       "stages": {
2026-06-19T05:28:32.5183368Z         "doc": {
2026-06-19T05:28:32.5183482Z           "complete": false,
2026-06-19T05:28:32.5183593Z           "evidence": []
2026-06-19T05:28:32.5183688Z         },
2026-06-19T05:28:32.5183797Z         "impl": {
2026-06-19T05:28:32.5183903Z           "complete": true,
2026-06-19T05:28:32.5184008Z           "evidence": [
2026-06-19T05:28:32.5184112Z             {
2026-06-19T05:28:32.5184265Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:28:32.5184374Z               "line": 57
2026-06-19T05:28:32.5184478Z             },
2026-06-19T05:28:32.5184578Z             {
2026-06-19T05:28:32.5184733Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5184847Z               "line": 71
2026-06-19T05:28:32.5184948Z             },
2026-06-19T05:28:32.5185053Z             {
2026-06-19T05:28:32.5185201Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5185305Z               "line": 81
2026-06-19T05:28:32.5185409Z             },
2026-06-19T05:28:32.5185516Z             {
2026-06-19T05:28:32.5185659Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5185767Z               "line": 159
2026-06-19T05:28:32.5185869Z             },
2026-06-19T05:28:32.5185977Z             {
2026-06-19T05:28:32.5186130Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5186236Z               "line": 175
2026-06-19T05:28:32.5186345Z             },
2026-06-19T05:28:32.5186450Z             {
2026-06-19T05:28:32.5186597Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-19T05:28:32.5186707Z               "line": 190
2026-06-19T05:28:32.5186808Z             }
2026-06-19T05:28:32.5186912Z           ]
2026-06-19T05:28:32.5187017Z         },
2026-06-19T05:28:32.5187123Z         "int": {
2026-06-19T05:28:32.5187236Z           "complete": false,
2026-06-19T05:28:32.5187350Z           "evidence": []
2026-06-19T05:28:32.5187450Z         },
2026-06-19T05:28:32.5187556Z         "unit": {
2026-06-19T05:28:32.5187674Z           "complete": true,
2026-06-19T05:28:32.5187774Z           "evidence": [
2026-06-19T05:28:32.5187880Z             {
2026-06-19T05:28:32.5188017Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:28:32.5188128Z               "line": 402
2026-06-19T05:28:32.5188228Z             }
2026-06-19T05:28:32.5188332Z           ]
2026-06-19T05:28:32.5188433Z         }
2026-06-19T05:28:32.5188527Z       }
2026-06-19T05:28:32.5188632Z     },
2026-06-19T05:28:32.5188733Z     {
2026-06-19T05:28:32.5188837Z       "id": "REQ-NET-3",
2026-06-19T05:28:32.5189119Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-19T05:28:32.5189349Z       "requiredStages": [
2026-06-19T05:28:32.5189453Z         "impl",
2026-06-19T05:28:32.5189557Z         "unit"
2026-06-19T05:28:32.5189657Z       ],
2026-06-19T05:28:32.5189761Z       "stages": {
2026-06-19T05:28:32.5189869Z         "doc": {
2026-06-19T05:28:32.5189983Z           "complete": false,
2026-06-19T05:28:32.5190089Z           "evidence": []
2026-06-19T05:28:32.5190307Z         },
2026-06-19T05:28:32.5190413Z         "impl": {
2026-06-19T05:28:32.5190536Z           "complete": true,
2026-06-19T05:28:32.5190642Z           "evidence": [
2026-06-19T05:28:32.5190747Z             {
2026-06-19T05:28:32.5190893Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.5191000Z               "line": 39
2026-06-19T05:28:32.5191109Z             },
2026-06-19T05:28:32.5191213Z             {
2026-06-19T05:28:32.5191352Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.5191461Z               "line": 182
2026-06-19T05:28:32.5191567Z             },
2026-06-19T05:28:32.5191672Z             {
2026-06-19T05:28:32.5191814Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-19T05:28:32.5191911Z               "line": 333
2026-06-19T05:28:32.5192015Z             },
2026-06-19T05:28:32.5192124Z             {
2026-06-19T05:28:32.5192259Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-19T05:28:32.5192376Z               "line": 36
2026-06-19T05:28:32.5192475Z             },
2026-06-19T05:28:32.5192581Z             {
2026-06-19T05:28:32.5192731Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5192841Z               "line": 158
2026-06-19T05:28:32.5192937Z             },
2026-06-19T05:28:32.5193022Z             {
2026-06-19T05:28:32.5193184Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5193294Z               "line": 238
2026-06-19T05:28:32.5193399Z             },
2026-06-19T05:28:32.5193504Z             {
2026-06-19T05:28:32.5193642Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5193756Z               "line": 259
2026-06-19T05:28:32.5193853Z             },
2026-06-19T05:28:32.5193957Z             {
2026-06-19T05:28:32.5194109Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5194219Z               "line": 317
2026-06-19T05:28:32.5194314Z             },
2026-06-19T05:28:32.5194409Z             {
2026-06-19T05:28:32.5194558Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5194667Z               "line": 336
2026-06-19T05:28:32.5194773Z             },
2026-06-19T05:28:32.5194878Z             {
2026-06-19T05:28:32.5195028Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5195129Z               "line": 374
2026-06-19T05:28:32.5195232Z             },
2026-06-19T05:28:32.5195335Z             {
2026-06-19T05:28:32.5195484Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5195599Z               "line": 419
2026-06-19T05:28:32.5195703Z             },
2026-06-19T05:28:32.5195804Z             {
2026-06-19T05:28:32.5195951Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5196061Z               "line": 432
2026-06-19T05:28:32.5196171Z             },
2026-06-19T05:28:32.5196266Z             {
2026-06-19T05:28:32.5196414Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:28:32.5196532Z               "line": 29
2026-06-19T05:28:32.5196637Z             },
2026-06-19T05:28:32.5196739Z             {
2026-06-19T05:28:32.5196886Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:28:32.5197000Z               "line": 72
2026-06-19T05:28:32.5197101Z             },
2026-06-19T05:28:32.5197210Z             {
2026-06-19T05:28:32.5197364Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:28:32.5197472Z               "line": 123
2026-06-19T05:28:32.5197577Z             }
2026-06-19T05:28:32.5197669Z           ]
2026-06-19T05:28:32.5197852Z         },
2026-06-19T05:28:32.5197957Z         "int": {
2026-06-19T05:28:32.5198077Z           "complete": false,
2026-06-19T05:28:32.5198186Z           "evidence": []
2026-06-19T05:28:32.5198291Z         },
2026-06-19T05:28:32.5198401Z         "unit": {
2026-06-19T05:28:32.5198506Z           "complete": true,
2026-06-19T05:28:32.5198616Z           "evidence": [
2026-06-19T05:28:32.5198783Z             {
2026-06-19T05:28:32.5198926Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:28:32.5199131Z               "line": 223
2026-06-19T05:28:32.5199230Z             },
2026-06-19T05:28:32.5199332Z             {
2026-06-19T05:28:32.5199478Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:28:32.5199589Z               "line": 351
2026-06-19T05:28:32.5199694Z             },
2026-06-19T05:28:32.5199793Z             {
2026-06-19T05:28:32.5199943Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-19T05:28:32.5200046Z               "line": 504
2026-06-19T05:28:32.5200159Z             },
2026-06-19T05:28:32.5200260Z             {
2026-06-19T05:28:32.5200395Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-19T05:28:32.5200495Z               "line": 93
2026-06-19T05:28:32.5200601Z             },
2026-06-19T05:28:32.5200701Z             {
2026-06-19T05:28:32.5200839Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-19T05:28:32.5200954Z               "line": 142
2026-06-19T05:28:32.5201053Z             },
2026-06-19T05:28:32.5201158Z             {
2026-06-19T05:28:32.5201302Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:28:32.5201411Z               "line": 315
2026-06-19T05:28:32.5201502Z             },
2026-06-19T05:28:32.5201602Z             {
2026-06-19T05:28:32.5201754Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:28:32.5201860Z               "line": 355
2026-06-19T05:28:32.5201964Z             },
2026-06-19T05:28:32.5202064Z             {
2026-06-19T05:28:32.5202204Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-19T05:28:32.5202317Z               "line": 494
2026-06-19T05:28:32.5202422Z             }
2026-06-19T05:28:32.5202528Z           ]
2026-06-19T05:28:32.5202627Z         }
2026-06-19T05:28:32.5202727Z       }
2026-06-19T05:28:32.5202829Z     },
2026-06-19T05:28:32.5202932Z     {
2026-06-19T05:28:32.5203055Z       "id": "REQ-NODE-IDENTITY",
2026-06-19T05:28:32.5203320Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-19T05:28:32.5203425Z       "requiredStages": [
2026-06-19T05:28:32.5203531Z         "impl",
2026-06-19T05:28:32.5203639Z         "unit"
2026-06-19T05:28:32.5203739Z       ],
2026-06-19T05:28:32.5203845Z       "stages": {
2026-06-19T05:28:32.5203949Z         "doc": {
2026-06-19T05:28:32.5204069Z           "complete": false,
2026-06-19T05:28:32.5204179Z           "evidence": []
2026-06-19T05:28:32.5204278Z         },
2026-06-19T05:28:32.5204383Z         "impl": {
2026-06-19T05:28:32.5204498Z           "complete": true,
2026-06-19T05:28:32.5204598Z           "evidence": [
2026-06-19T05:28:32.5204698Z             {
2026-06-19T05:28:32.5204841Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:28:32.5204951Z               "line": 60
2026-06-19T05:28:32.5205052Z             },
2026-06-19T05:28:32.5205151Z             {
2026-06-19T05:28:32.5205314Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:28:32.5205419Z               "line": 68
2026-06-19T05:28:32.5205523Z             },
2026-06-19T05:28:32.5205626Z             {
2026-06-19T05:28:32.5205769Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:28:32.5205882Z               "line": 86
2026-06-19T05:28:32.5205982Z             },
2026-06-19T05:28:32.5206088Z             {
2026-06-19T05:28:32.5206229Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:28:32.5206345Z               "line": 120
2026-06-19T05:28:32.5206440Z             },
2026-06-19T05:28:32.5206641Z             {
2026-06-19T05:28:32.5206788Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:28:32.5206897Z               "line": 127
2026-06-19T05:28:32.5207003Z             },
2026-06-19T05:28:32.5207102Z             {
2026-06-19T05:28:32.5207246Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:28:32.5207356Z               "line": 143
2026-06-19T05:28:32.5207556Z             },
2026-06-19T05:28:32.5207657Z             {
2026-06-19T05:28:32.5207799Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-19T05:28:32.5207919Z               "line": 16
2026-06-19T05:28:32.5208018Z             }
2026-06-19T05:28:32.5208128Z           ]
2026-06-19T05:28:32.5208224Z         },
2026-06-19T05:28:32.5208333Z         "int": {
2026-06-19T05:28:32.5208446Z           "complete": false,
2026-06-19T05:28:32.5208561Z           "evidence": []
2026-06-19T05:28:32.5208667Z         },
2026-06-19T05:28:32.5208775Z         "unit": {
2026-06-19T05:28:32.5208895Z           "complete": true,
2026-06-19T05:28:32.5209104Z           "evidence": [
2026-06-19T05:28:32.5209215Z             {
2026-06-19T05:28:32.5209353Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:28:32.5209462Z               "line": 199
2026-06-19T05:28:32.5209558Z             },
2026-06-19T05:28:32.5209647Z             {
2026-06-19T05:28:32.5209800Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:28:32.5209911Z               "line": 218
2026-06-19T05:28:32.5210015Z             },
2026-06-19T05:28:32.5210115Z             {
2026-06-19T05:28:32.5210263Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:28:32.5210377Z               "line": 234
2026-06-19T05:28:32.5210474Z             },
2026-06-19T05:28:32.5210583Z             {
2026-06-19T05:28:32.5210715Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-19T05:28:32.5210824Z               "line": 256
2026-06-19T05:28:32.5210923Z             },
2026-06-19T05:28:32.5211032Z             {
2026-06-19T05:28:32.5211176Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-19T05:28:32.5211280Z               "line": 124
2026-06-19T05:28:32.5211384Z             },
2026-06-19T05:28:32.5211486Z             {
2026-06-19T05:28:32.5211627Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-19T05:28:32.5211738Z               "line": 140
2026-06-19T05:28:32.5211838Z             },
2026-06-19T05:28:32.5211942Z             {
2026-06-19T05:28:32.5212077Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-19T05:28:32.5212191Z               "line": 155
2026-06-19T05:28:32.5212290Z             }
2026-06-19T05:28:32.5212387Z           ]
2026-06-19T05:28:32.5212482Z         }
2026-06-19T05:28:32.5212581Z       }
2026-06-19T05:28:32.5212687Z     },
2026-06-19T05:28:32.5212788Z     {
2026-06-19T05:28:32.5212911Z       "id": "REQ-NOTIF-1",
2026-06-19T05:28:32.5213292Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-19T05:28:32.5213422Z       "requiredStages": [
2026-06-19T05:28:32.5213530Z         "impl",
2026-06-19T05:28:32.5213639Z         "unit",
2026-06-19T05:28:32.5213744Z         "int"
2026-06-19T05:28:32.5213842Z       ],
2026-06-19T05:28:32.5213946Z       "stages": {
2026-06-19T05:28:32.5214052Z         "doc": {
2026-06-19T05:28:32.5214180Z           "complete": false,
2026-06-19T05:28:32.5214300Z           "evidence": []
2026-06-19T05:28:32.5214405Z         },
2026-06-19T05:28:32.5214504Z         "impl": {
2026-06-19T05:28:32.5214610Z           "complete": true,
2026-06-19T05:28:32.5214719Z           "evidence": [
2026-06-19T05:28:32.5214810Z             {
2026-06-19T05:28:32.5214963Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.5215077Z               "line": 514
2026-06-19T05:28:32.5215177Z             },
2026-06-19T05:28:32.5215283Z             {
2026-06-19T05:28:32.5215415Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5215641Z               "line": 30
2026-06-19T05:28:32.5215739Z             },
2026-06-19T05:28:32.5215845Z             {
2026-06-19T05:28:32.5215988Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5216101Z               "line": 69
2026-06-19T05:28:32.5216206Z             },
2026-06-19T05:28:32.5216306Z             {
2026-06-19T05:28:32.5216556Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5216672Z               "line": 93
2026-06-19T05:28:32.5216776Z             },
2026-06-19T05:28:32.5216881Z             {
2026-06-19T05:28:32.5217015Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5217118Z               "line": 107
2026-06-19T05:28:32.5217220Z             },
2026-06-19T05:28:32.5217329Z             {
2026-06-19T05:28:32.5217472Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5217587Z               "line": 142
2026-06-19T05:28:32.5217687Z             },
2026-06-19T05:28:32.5217791Z             {
2026-06-19T05:28:32.5217935Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5218044Z               "line": 187
2026-06-19T05:28:32.5218155Z             },
2026-06-19T05:28:32.5218254Z             {
2026-06-19T05:28:32.5218401Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5218508Z               "line": 258
2026-06-19T05:28:32.5218616Z             },
2026-06-19T05:28:32.5218721Z             {
2026-06-19T05:28:32.5218851Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5219044Z               "line": 372
2026-06-19T05:28:32.5219145Z             },
2026-06-19T05:28:32.5219250Z             {
2026-06-19T05:28:32.5219393Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5219508Z               "line": 479
2026-06-19T05:28:32.5219607Z             },
2026-06-19T05:28:32.5219707Z             {
2026-06-19T05:28:32.5219851Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.5219965Z               "line": 24
2026-06-19T05:28:32.5220070Z             },
2026-06-19T05:28:32.5220170Z             {
2026-06-19T05:28:32.5220317Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.5220423Z               "line": 34
2026-06-19T05:28:32.5220527Z             },
2026-06-19T05:28:32.5220627Z             {
2026-06-19T05:28:32.5220776Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.5220889Z               "line": 60
2026-06-19T05:28:32.5220995Z             },
2026-06-19T05:28:32.5221096Z             {
2026-06-19T05:28:32.5221242Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.5221356Z               "line": 82
2026-06-19T05:28:32.5221460Z             },
2026-06-19T05:28:32.5221563Z             {
2026-06-19T05:28:32.5221702Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.5221821Z               "line": 94
2026-06-19T05:28:32.5221930Z             },
2026-06-19T05:28:32.5222036Z             {
2026-06-19T05:28:32.5222183Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.5222293Z               "line": 96
2026-06-19T05:28:32.5222399Z             },
2026-06-19T05:28:32.5222498Z             {
2026-06-19T05:28:32.5222656Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-19T05:28:32.5222765Z               "line": 44
2026-06-19T05:28:32.5222879Z             },
2026-06-19T05:28:32.5222976Z             {
2026-06-19T05:28:32.5223114Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:28:32.5223232Z               "line": 20
2026-06-19T05:28:32.5223334Z             },
2026-06-19T05:28:32.5223432Z             {
2026-06-19T05:28:32.5223577Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:28:32.5223686Z               "line": 30
2026-06-19T05:28:32.5223786Z             },
2026-06-19T05:28:32.5223887Z             {
2026-06-19T05:28:32.5224034Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:28:32.5224242Z               "line": 50
2026-06-19T05:28:32.5224351Z             },
2026-06-19T05:28:32.5224454Z             {
2026-06-19T05:28:32.5224598Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5224707Z               "line": 28
2026-06-19T05:28:32.5224812Z             },
2026-06-19T05:28:32.5224909Z             {
2026-06-19T05:28:32.5225150Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5225270Z               "line": 126
2026-06-19T05:28:32.5225374Z             },
2026-06-19T05:28:32.5225475Z             {
2026-06-19T05:28:32.5225608Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5225723Z               "line": 161
2026-06-19T05:28:32.5225824Z             },
2026-06-19T05:28:32.5225919Z             {
2026-06-19T05:28:32.5226061Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5226172Z               "line": 202
2026-06-19T05:28:32.5226280Z             },
2026-06-19T05:28:32.5226386Z             {
2026-06-19T05:28:32.5226535Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5226652Z               "line": 213
2026-06-19T05:28:32.5226751Z             },
2026-06-19T05:28:32.5226857Z             {
2026-06-19T05:28:32.5226988Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5227102Z               "line": 238
2026-06-19T05:28:32.5227213Z             },
2026-06-19T05:28:32.5227321Z             {
2026-06-19T05:28:32.5227451Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5227561Z               "line": 261
2026-06-19T05:28:32.5227670Z             },
2026-06-19T05:28:32.5227766Z             {
2026-06-19T05:28:32.5227913Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5228027Z               "line": 82
2026-06-19T05:28:32.5228128Z             }
2026-06-19T05:28:32.5228237Z           ]
2026-06-19T05:28:32.5228342Z         },
2026-06-19T05:28:32.5228443Z         "int": {
2026-06-19T05:28:32.5228566Z           "complete": true,
2026-06-19T05:28:32.5228681Z           "evidence": [
2026-06-19T05:28:32.5228786Z             {
2026-06-19T05:28:32.5229020Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.5229129Z               "line": 285
2026-06-19T05:28:32.5229224Z             },
2026-06-19T05:28:32.5229325Z             {
2026-06-19T05:28:32.5229458Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-19T05:28:32.5229571Z               "line": 145
2026-06-19T05:28:32.5229676Z             },
2026-06-19T05:28:32.5229777Z             {
2026-06-19T05:28:32.5229919Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5230029Z               "line": 683
2026-06-19T05:28:32.5230135Z             },
2026-06-19T05:28:32.5230238Z             {
2026-06-19T05:28:32.5230383Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5230496Z               "line": 1101
2026-06-19T05:28:32.5230592Z             }
2026-06-19T05:28:32.5230697Z           ]
2026-06-19T05:28:32.5230797Z         },
2026-06-19T05:28:32.5230906Z         "unit": {
2026-06-19T05:28:32.5231017Z           "complete": true,
2026-06-19T05:28:32.5231131Z           "evidence": [
2026-06-19T05:28:32.5231241Z             {
2026-06-19T05:28:32.5231379Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5231498Z               "line": 572
2026-06-19T05:28:32.5231599Z             },
2026-06-19T05:28:32.5231707Z             {
2026-06-19T05:28:32.5231840Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5231945Z               "line": 636
2026-06-19T05:28:32.5232048Z             },
2026-06-19T05:28:32.5232147Z             {
2026-06-19T05:28:32.5232286Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5232405Z               "line": 740
2026-06-19T05:28:32.5232510Z             },
2026-06-19T05:28:32.5232611Z             {
2026-06-19T05:28:32.5232753Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5232973Z               "line": 772
2026-06-19T05:28:32.5233077Z             },
2026-06-19T05:28:32.5233178Z             {
2026-06-19T05:28:32.5233325Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5233434Z               "line": 840
2026-06-19T05:28:32.5233536Z             },
2026-06-19T05:28:32.5233635Z             {
2026-06-19T05:28:32.5233870Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5233978Z               "line": 898
2026-06-19T05:28:32.5234083Z             },
2026-06-19T05:28:32.5234180Z             {
2026-06-19T05:28:32.5234331Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5234442Z               "line": 1173
2026-06-19T05:28:32.5234538Z             },
2026-06-19T05:28:32.5234640Z             {
2026-06-19T05:28:32.5234793Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.5234906Z               "line": 157
2026-06-19T05:28:32.5235005Z             },
2026-06-19T05:28:32.5235110Z             {
2026-06-19T05:28:32.5235254Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.5235367Z               "line": 250
2026-06-19T05:28:32.5235478Z             },
2026-06-19T05:28:32.5235574Z             {
2026-06-19T05:28:32.5235720Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-19T05:28:32.5235835Z               "line": 273
2026-06-19T05:28:32.5235944Z             },
2026-06-19T05:28:32.5236059Z             {
2026-06-19T05:28:32.5236211Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.5236336Z               "line": 355
2026-06-19T05:28:32.5236437Z             },
2026-06-19T05:28:32.5236540Z             {
2026-06-19T05:28:32.5236689Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-19T05:28:32.5236808Z               "line": 392
2026-06-19T05:28:32.5236912Z             },
2026-06-19T05:28:32.5237014Z             {
2026-06-19T05:28:32.5237174Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-19T05:28:32.5237297Z               "line": 131
2026-06-19T05:28:32.5237407Z             },
2026-06-19T05:28:32.5237510Z             {
2026-06-19T05:28:32.5237658Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:28:32.5237768Z               "line": 72
2026-06-19T05:28:32.5237877Z             },
2026-06-19T05:28:32.5237987Z             {
2026-06-19T05:28:32.5238130Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-19T05:28:32.5238239Z               "line": 97
2026-06-19T05:28:32.5238341Z             },
2026-06-19T05:28:32.5238440Z             {
2026-06-19T05:28:32.5238582Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5238689Z               "line": 379
2026-06-19T05:28:32.5238797Z             },
2026-06-19T05:28:32.5238897Z             {
2026-06-19T05:28:32.5239117Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5239221Z               "line": 417
2026-06-19T05:28:32.5239332Z             },
2026-06-19T05:28:32.5239436Z             {
2026-06-19T05:28:32.5239566Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5239666Z               "line": 433
2026-06-19T05:28:32.5239760Z             },
2026-06-19T05:28:32.5239866Z             {
2026-06-19T05:28:32.5239999Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5240103Z               "line": 472
2026-06-19T05:28:32.5240208Z             },
2026-06-19T05:28:32.5240309Z             {
2026-06-19T05:28:32.5240451Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5240551Z               "line": 489
2026-06-19T05:28:32.5240656Z             },
2026-06-19T05:28:32.5240756Z             {
2026-06-19T05:28:32.5240886Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5240990Z               "line": 517
2026-06-19T05:28:32.5241094Z             },
2026-06-19T05:28:32.5241195Z             {
2026-06-19T05:28:32.5241333Z               "path": "crates/spt-store/src/notif.rs",
2026-06-19T05:28:32.5241549Z               "line": 548
2026-06-19T05:28:32.5241653Z             },
2026-06-19T05:28:32.5241752Z             {
2026-06-19T05:28:32.5241896Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5242000Z               "line": 741
2026-06-19T05:28:32.5242106Z             }
2026-06-19T05:28:32.5242305Z           ]
2026-06-19T05:28:32.5242410Z         }
2026-06-19T05:28:32.5242505Z       }
2026-06-19T05:28:32.5242594Z     },
2026-06-19T05:28:32.5242698Z     {
2026-06-19T05:28:32.5242808Z       "id": "REQ-NOTIF-2",
2026-06-19T05:28:32.5243103Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-19T05:28:32.5243218Z       "requiredStages": [
2026-06-19T05:28:32.5243323Z         "doc",
2026-06-19T05:28:32.5243423Z         "impl",
2026-06-19T05:28:32.5243528Z         "unit",
2026-06-19T05:28:32.5243623Z         "int"
2026-06-19T05:28:32.5243728Z       ],
2026-06-19T05:28:32.5243833Z       "stages": {
2026-06-19T05:28:32.5243938Z         "doc": {
2026-06-19T05:28:32.5244062Z           "complete": true,
2026-06-19T05:28:32.5244181Z           "evidence": [
2026-06-19T05:28:32.5244277Z             {
2026-06-19T05:28:32.5244402Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.5244510Z               "line": 506
2026-06-19T05:28:32.5244619Z             },
2026-06-19T05:28:32.5244735Z             {
2026-06-19T05:28:32.5244858Z               "path": "docs/MANIFEST.md",
2026-06-19T05:28:32.5244963Z               "line": 98
2026-06-19T05:28:32.5245064Z             }
2026-06-19T05:28:32.5245163Z           ]
2026-06-19T05:28:32.5245258Z         },
2026-06-19T05:28:32.5245368Z         "impl": {
2026-06-19T05:28:32.5245476Z           "complete": true,
2026-06-19T05:28:32.5245584Z           "evidence": [
2026-06-19T05:28:32.5245689Z             {
2026-06-19T05:28:32.5245833Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5245951Z               "line": 287
2026-06-19T05:28:32.5246057Z             },
2026-06-19T05:28:32.5246166Z             {
2026-06-19T05:28:32.5246300Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5246410Z               "line": 301
2026-06-19T05:28:32.5248605Z             },
2026-06-19T05:28:32.5248728Z             {
2026-06-19T05:28:32.5248891Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5249104Z               "line": 326
2026-06-19T05:28:32.5249206Z             },
2026-06-19T05:28:32.5249305Z             {
2026-06-19T05:28:32.5249467Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.5249582Z               "line": 210
2026-06-19T05:28:32.5249687Z             },
2026-06-19T05:28:32.5249791Z             {
2026-06-19T05:28:32.5249944Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5250058Z               "line": 91
2026-06-19T05:28:32.5250159Z             },
2026-06-19T05:28:32.5250268Z             {
2026-06-19T05:28:32.5250402Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5250503Z               "line": 2101
2026-06-19T05:28:32.5250606Z             },
2026-06-19T05:28:32.5250710Z             {
2026-06-19T05:28:32.5250835Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5250944Z               "line": 2150
2026-06-19T05:28:32.5251053Z             },
2026-06-19T05:28:32.5251160Z             {
2026-06-19T05:28:32.5251287Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5251397Z               "line": 2229
2026-06-19T05:28:32.5251498Z             },
2026-06-19T05:28:32.5251602Z             {
2026-06-19T05:28:32.5251731Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5251846Z               "line": 2268
2026-06-19T05:28:32.5251950Z             }
2026-06-19T05:28:32.5252051Z           ]
2026-06-19T05:28:32.5252156Z         },
2026-06-19T05:28:32.5252260Z         "int": {
2026-06-19T05:28:32.5252380Z           "complete": true,
2026-06-19T05:28:32.5252627Z           "evidence": [
2026-06-19T05:28:32.5252734Z             {
2026-06-19T05:28:32.5252894Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5252993Z               "line": 809
2026-06-19T05:28:32.5253098Z             },
2026-06-19T05:28:32.5253201Z             {
2026-06-19T05:28:32.5253344Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5253549Z               "line": 1344
2026-06-19T05:28:32.5253658Z             }
2026-06-19T05:28:32.5253760Z           ]
2026-06-19T05:28:32.5253864Z         },
2026-06-19T05:28:32.5253973Z         "unit": {
2026-06-19T05:28:32.5254074Z           "complete": true,
2026-06-19T05:28:32.5254183Z           "evidence": [
2026-06-19T05:28:32.5254288Z             {
2026-06-19T05:28:32.5254437Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5254541Z               "line": 1022
2026-06-19T05:28:32.5254647Z             },
2026-06-19T05:28:32.5254751Z             {
2026-06-19T05:28:32.5254888Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5254995Z               "line": 1090
2026-06-19T05:28:32.5255085Z             },
2026-06-19T05:28:32.5255194Z             {
2026-06-19T05:28:32.5255319Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5255432Z               "line": 8015
2026-06-19T05:28:32.5255538Z             },
2026-06-19T05:28:32.5255643Z             {
2026-06-19T05:28:32.5255775Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5255879Z               "line": 8070
2026-06-19T05:28:32.5255980Z             }
2026-06-19T05:28:32.5256083Z           ]
2026-06-19T05:28:32.5256177Z         }
2026-06-19T05:28:32.5256283Z       }
2026-06-19T05:28:32.5256379Z     },
2026-06-19T05:28:32.5256482Z     {
2026-06-19T05:28:32.5256593Z       "id": "REQ-PAIR-1",
2026-06-19T05:28:32.5256726Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-19T05:28:32.5256937Z       "requiredStages": [
2026-06-19T05:28:32.5257041Z         "impl",
2026-06-19T05:28:32.5257151Z         "unit",
2026-06-19T05:28:32.5257261Z         "int"
2026-06-19T05:28:32.5257366Z       ],
2026-06-19T05:28:32.5257465Z       "stages": {
2026-06-19T05:28:32.5257571Z         "doc": {
2026-06-19T05:28:32.5257694Z           "complete": false,
2026-06-19T05:28:32.5257799Z           "evidence": []
2026-06-19T05:28:32.5257910Z         },
2026-06-19T05:28:32.5258018Z         "impl": {
2026-06-19T05:28:32.5258134Z           "complete": true,
2026-06-19T05:28:32.5258248Z           "evidence": [
2026-06-19T05:28:32.5258351Z             {
2026-06-19T05:28:32.5258518Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.5258621Z               "line": 27
2026-06-19T05:28:32.5258720Z             },
2026-06-19T05:28:32.5258821Z             {
2026-06-19T05:28:32.5259078Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.5259179Z               "line": 88
2026-06-19T05:28:32.5259288Z             },
2026-06-19T05:28:32.5259393Z             {
2026-06-19T05:28:32.5259555Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.5259664Z               "line": 110
2026-06-19T05:28:32.5259766Z             },
2026-06-19T05:28:32.5259865Z             {
2026-06-19T05:28:32.5260018Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.5260119Z               "line": 153
2026-06-19T05:28:32.5260228Z             },
2026-06-19T05:28:32.5260328Z             {
2026-06-19T05:28:32.5260476Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.5260585Z               "line": 182
2026-06-19T05:28:32.5260686Z             },
2026-06-19T05:28:32.5260791Z             {
2026-06-19T05:28:32.5260943Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:28:32.5261058Z               "line": 29
2026-06-19T05:28:32.5261157Z             },
2026-06-19T05:28:32.5261261Z             {
2026-06-19T05:28:32.5261429Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-19T05:28:32.5261657Z               "line": 31
2026-06-19T05:28:32.5261758Z             },
2026-06-19T05:28:32.5261857Z             {
2026-06-19T05:28:32.5262006Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5262110Z               "line": 44
2026-06-19T05:28:32.5262214Z             },
2026-06-19T05:28:32.5262315Z             {
2026-06-19T05:28:32.5262568Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5262674Z               "line": 171
2026-06-19T05:28:32.5262773Z             },
2026-06-19T05:28:32.5262868Z             {
2026-06-19T05:28:32.5263017Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5263125Z               "line": 376
2026-06-19T05:28:32.5263226Z             }
2026-06-19T05:28:32.5263323Z           ]
2026-06-19T05:28:32.5263430Z         },
2026-06-19T05:28:32.5263530Z         "int": {
2026-06-19T05:28:32.5263649Z           "complete": true,
2026-06-19T05:28:32.5263766Z           "evidence": [
2026-06-19T05:28:32.5263875Z             {
2026-06-19T05:28:32.5264020Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5264128Z               "line": 644
2026-06-19T05:28:32.5264228Z             },
2026-06-19T05:28:32.5264315Z             {
2026-06-19T05:28:32.5264467Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5264587Z               "line": 886
2026-06-19T05:28:32.5264682Z             }
2026-06-19T05:28:32.5264781Z           ]
2026-06-19T05:28:32.5264888Z         },
2026-06-19T05:28:32.5264997Z         "unit": {
2026-06-19T05:28:32.5265106Z           "complete": true,
2026-06-19T05:28:32.5265212Z           "evidence": [
2026-06-19T05:28:32.5265311Z             {
2026-06-19T05:28:32.5265463Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.5265564Z               "line": 236
2026-06-19T05:28:32.5265668Z             },
2026-06-19T05:28:32.5265764Z             {
2026-06-19T05:28:32.5265922Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-19T05:28:32.5266031Z               "line": 349
2026-06-19T05:28:32.5266136Z             },
2026-06-19T05:28:32.5266241Z             {
2026-06-19T05:28:32.5266378Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:28:32.5266488Z               "line": 194
2026-06-19T05:28:32.5266605Z             },
2026-06-19T05:28:32.5266709Z             {
2026-06-19T05:28:32.5266858Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:28:32.5266972Z               "line": 216
2026-06-19T05:28:32.5267076Z             },
2026-06-19T05:28:32.5267173Z             {
2026-06-19T05:28:32.5267324Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:28:32.5267430Z               "line": 230
2026-06-19T05:28:32.5267530Z             },
2026-06-19T05:28:32.5267629Z             {
2026-06-19T05:28:32.5267764Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:28:32.5267883Z               "line": 242
2026-06-19T05:28:32.5267987Z             },
2026-06-19T05:28:32.5268084Z             {
2026-06-19T05:28:32.5268235Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:28:32.5268335Z               "line": 256
2026-06-19T05:28:32.5268441Z             },
2026-06-19T05:28:32.5268540Z             {
2026-06-19T05:28:32.5268689Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:28:32.5268799Z               "line": 270
2026-06-19T05:28:32.5268902Z             },
2026-06-19T05:28:32.5269068Z             {
2026-06-19T05:28:32.5269214Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:28:32.5269328Z               "line": 277
2026-06-19T05:28:32.5269425Z             },
2026-06-19T05:28:32.5269524Z             {
2026-06-19T05:28:32.5269677Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-19T05:28:32.5269777Z               "line": 295
2026-06-19T05:28:32.5270130Z             },
2026-06-19T05:28:32.5270248Z             {
2026-06-19T05:28:32.5270402Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5270511Z               "line": 968
2026-06-19T05:28:32.5270616Z             },
2026-06-19T05:28:32.5270721Z             {
2026-06-19T05:28:32.5270863Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5271074Z               "line": 1051
2026-06-19T05:28:32.5271178Z             },
2026-06-19T05:28:32.5271280Z             {
2026-06-19T05:28:32.5271431Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5271537Z               "line": 1121
2026-06-19T05:28:32.5271642Z             },
2026-06-19T05:28:32.5271741Z             {
2026-06-19T05:28:32.5271893Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5272003Z               "line": 1182
2026-06-19T05:28:32.5272112Z             },
2026-06-19T05:28:32.5272212Z             {
2026-06-19T05:28:32.5272366Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5272479Z               "line": 1238
2026-06-19T05:28:32.5272571Z             },
2026-06-19T05:28:32.5272675Z             {
2026-06-19T05:28:32.5272818Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5272924Z               "line": 1457
2026-06-19T05:28:32.5273033Z             }
2026-06-19T05:28:32.5273137Z           ]
2026-06-19T05:28:32.5273239Z         }
2026-06-19T05:28:32.5273337Z       }
2026-06-19T05:28:32.5273428Z     },
2026-06-19T05:28:32.5273529Z     {
2026-06-19T05:28:32.5273656Z       "id": "REQ-PAIR-2",
2026-06-19T05:28:32.5273810Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-19T05:28:32.5273929Z       "requiredStages": [],
2026-06-19T05:28:32.5274043Z       "stages": {
2026-06-19T05:28:32.5274142Z         "doc": {
2026-06-19T05:28:32.5274261Z           "complete": false,
2026-06-19T05:28:32.5274369Z           "evidence": []
2026-06-19T05:28:32.5274478Z         },
2026-06-19T05:28:32.5274585Z         "impl": {
2026-06-19T05:28:32.5274698Z           "complete": false,
2026-06-19T05:28:32.5274808Z           "evidence": []
2026-06-19T05:28:32.5274903Z         },
2026-06-19T05:28:32.5275012Z         "int": {
2026-06-19T05:28:32.5275128Z           "complete": false,
2026-06-19T05:28:32.5275228Z           "evidence": []
2026-06-19T05:28:32.5275332Z         },
2026-06-19T05:28:32.5275443Z         "unit": {
2026-06-19T05:28:32.5275561Z           "complete": false,
2026-06-19T05:28:32.5275666Z           "evidence": []
2026-06-19T05:28:32.5275767Z         }
2026-06-19T05:28:32.5275861Z       }
2026-06-19T05:28:32.5275966Z     },
2026-06-19T05:28:32.5276062Z     {
2026-06-19T05:28:32.5276171Z       "id": "REQ-PAIR-3",
2026-06-19T05:28:32.5276348Z       "title": "Fetch current pairing code from any paired node",
2026-06-19T05:28:32.5276463Z       "requiredStages": [
2026-06-19T05:28:32.5276572Z         "impl",
2026-06-19T05:28:32.5276673Z         "unit"
2026-06-19T05:28:32.5276787Z       ],
2026-06-19T05:28:32.5276886Z       "stages": {
2026-06-19T05:28:32.5276980Z         "doc": {
2026-06-19T05:28:32.5277104Z           "complete": false,
2026-06-19T05:28:32.5277217Z           "evidence": []
2026-06-19T05:28:32.5277322Z         },
2026-06-19T05:28:32.5277428Z         "impl": {
2026-06-19T05:28:32.5277541Z           "complete": true,
2026-06-19T05:28:32.5277651Z           "evidence": [
2026-06-19T05:28:32.5277747Z             {
2026-06-19T05:28:32.5277875Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5277980Z               "line": 3135
2026-06-19T05:28:32.5278085Z             },
2026-06-19T05:28:32.5278189Z             {
2026-06-19T05:28:32.5278314Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5278419Z               "line": 3204
2026-06-19T05:28:32.5278524Z             },
2026-06-19T05:28:32.5278624Z             {
2026-06-19T05:28:32.5278748Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5278853Z               "line": 3585
2026-06-19T05:28:32.5279119Z             },
2026-06-19T05:28:32.5279225Z             {
2026-06-19T05:28:32.5279354Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5279462Z               "line": 4830
2026-06-19T05:28:32.5279566Z             }
2026-06-19T05:28:32.5279671Z           ]
2026-06-19T05:28:32.5279770Z         },
2026-06-19T05:28:32.5279970Z         "int": {
2026-06-19T05:28:32.5280089Z           "complete": false,
2026-06-19T05:28:32.5280194Z           "evidence": []
2026-06-19T05:28:32.5280304Z         },
2026-06-19T05:28:32.5280409Z         "unit": {
2026-06-19T05:28:32.5280523Z           "complete": true,
2026-06-19T05:28:32.5280633Z           "evidence": [
2026-06-19T05:28:32.5280728Z             {
2026-06-19T05:28:32.5280857Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5280972Z               "line": 9769
2026-06-19T05:28:32.5281067Z             },
2026-06-19T05:28:32.5281167Z             {
2026-06-19T05:28:32.5281286Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5281405Z               "line": 9984
2026-06-19T05:28:32.5281506Z             },
2026-06-19T05:28:32.5281606Z             {
2026-06-19T05:28:32.5281729Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5281840Z               "line": 10626
2026-06-19T05:28:32.5281949Z             },
2026-06-19T05:28:32.5282049Z             {
2026-06-19T05:28:32.5282179Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5282287Z               "line": 10645
2026-06-19T05:28:32.5282386Z             },
2026-06-19T05:28:32.5282491Z             {
2026-06-19T05:28:32.5282616Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5282729Z               "line": 10669
2026-06-19T05:28:32.5282825Z             },
2026-06-19T05:28:32.5282926Z             {
2026-06-19T05:28:32.5283053Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5283160Z               "line": 10688
2026-06-19T05:28:32.5283265Z             },
2026-06-19T05:28:32.5283368Z             {
2026-06-19T05:28:32.5283498Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5283603Z               "line": 10701
2026-06-19T05:28:32.5283712Z             },
2026-06-19T05:28:32.5283804Z             {
2026-06-19T05:28:32.5283927Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5284046Z               "line": 10710
2026-06-19T05:28:32.5284151Z             }
2026-06-19T05:28:32.5284255Z           ]
2026-06-19T05:28:32.5284355Z         }
2026-06-19T05:28:32.5284462Z       }
2026-06-19T05:28:32.5284555Z     },
2026-06-19T05:28:32.5284654Z     {
2026-06-19T05:28:32.5284765Z       "id": "REQ-PAIR-4",
2026-06-19T05:28:32.5284900Z       "title": "Subnet naming on first pairing",
2026-06-19T05:28:32.5285015Z       "requiredStages": [
2026-06-19T05:28:32.5285120Z         "impl",
2026-06-19T05:28:32.5285220Z         "unit"
2026-06-19T05:28:32.5285320Z       ],
2026-06-19T05:28:32.5285425Z       "stages": {
2026-06-19T05:28:32.5285525Z         "doc": {
2026-06-19T05:28:32.5285649Z           "complete": false,
2026-06-19T05:28:32.5285759Z           "evidence": []
2026-06-19T05:28:32.5285859Z         },
2026-06-19T05:28:32.5285959Z         "impl": {
2026-06-19T05:28:32.5286065Z           "complete": true,
2026-06-19T05:28:32.5286178Z           "evidence": [
2026-06-19T05:28:32.5286278Z             {
2026-06-19T05:28:32.5286426Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-19T05:28:32.5286550Z               "line": 174
2026-06-19T05:28:32.5286652Z             }
2026-06-19T05:28:32.5286755Z           ]
2026-06-19T05:28:32.5286855Z         },
2026-06-19T05:28:32.5286952Z         "int": {
2026-06-19T05:28:32.5287056Z           "complete": false,
2026-06-19T05:28:32.5287161Z           "evidence": []
2026-06-19T05:28:32.5287262Z         },
2026-06-19T05:28:32.5287366Z         "unit": {
2026-06-19T05:28:32.5287479Z           "complete": true,
2026-06-19T05:28:32.5287584Z           "evidence": [
2026-06-19T05:28:32.5287693Z             {
2026-06-19T05:28:32.5287954Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5288063Z               "line": 1294
2026-06-19T05:28:32.5288167Z             }
2026-06-19T05:28:32.5288260Z           ]
2026-06-19T05:28:32.5288360Z         }
2026-06-19T05:28:32.5288454Z       }
2026-06-19T05:28:32.5288555Z     },
2026-06-19T05:28:32.5288655Z     {
2026-06-19T05:28:32.5288846Z       "id": "REQ-PAIR-5",
2026-06-19T05:28:32.5289284Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-19T05:28:32.5289398Z       "requiredStages": [
2026-06-19T05:28:32.5289494Z         "impl",
2026-06-19T05:28:32.5289599Z         "unit",
2026-06-19T05:28:32.5289708Z         "int"
2026-06-19T05:28:32.5289809Z       ],
2026-06-19T05:28:32.5289909Z       "stages": {
2026-06-19T05:28:32.5290013Z         "doc": {
2026-06-19T05:28:32.5290127Z           "complete": false,
2026-06-19T05:28:32.5290236Z           "evidence": []
2026-06-19T05:28:32.5290344Z         },
2026-06-19T05:28:32.5290453Z         "impl": {
2026-06-19T05:28:32.5290564Z           "complete": true,
2026-06-19T05:28:32.5290678Z           "evidence": [
2026-06-19T05:28:32.5290782Z             {
2026-06-19T05:28:32.5290936Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5291049Z               "line": 44
2026-06-19T05:28:32.5291155Z             },
2026-06-19T05:28:32.5291260Z             {
2026-06-19T05:28:32.5291407Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5291512Z               "line": 96
2026-06-19T05:28:32.5291622Z             },
2026-06-19T05:28:32.5291712Z             {
2026-06-19T05:28:32.5291861Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5291970Z               "line": 107
2026-06-19T05:28:32.5292071Z             },
2026-06-19T05:28:32.5292175Z             {
2026-06-19T05:28:32.5292313Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5292429Z               "line": 124
2026-06-19T05:28:32.5292523Z             },
2026-06-19T05:28:32.5292632Z             {
2026-06-19T05:28:32.5292782Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5292894Z               "line": 155
2026-06-19T05:28:32.5292998Z             },
2026-06-19T05:28:32.5293090Z             {
2026-06-19T05:28:32.5293237Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5293342Z               "line": 195
2026-06-19T05:28:32.5293443Z             },
2026-06-19T05:28:32.5293547Z             {
2026-06-19T05:28:32.5293700Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5293815Z               "line": 251
2026-06-19T05:28:32.5293914Z             },
2026-06-19T05:28:32.5294015Z             {
2026-06-19T05:28:32.5294186Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:28:32.5294296Z               "line": 33
2026-06-19T05:28:32.5294402Z             },
2026-06-19T05:28:32.5294501Z             {
2026-06-19T05:28:32.5294669Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:28:32.5294772Z               "line": 45
2026-06-19T05:28:32.5294877Z             },
2026-06-19T05:28:32.5294979Z             {
2026-06-19T05:28:32.5295148Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:28:32.5295253Z               "line": 59
2026-06-19T05:28:32.5295349Z             },
2026-06-19T05:28:32.5295456Z             {
2026-06-19T05:28:32.5295604Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5295710Z               "line": 376
2026-06-19T05:28:32.5295813Z             }
2026-06-19T05:28:32.5295914Z           ]
2026-06-19T05:28:32.5296019Z         },
2026-06-19T05:28:32.5296123Z         "int": {
2026-06-19T05:28:32.5296243Z           "complete": true,
2026-06-19T05:28:32.5296357Z           "evidence": [
2026-06-19T05:28:32.5296447Z             {
2026-06-19T05:28:32.5296715Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5296815Z               "line": 886
2026-06-19T05:28:32.5296925Z             },
2026-06-19T05:28:32.5297025Z             {
2026-06-19T05:28:32.5297183Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5297283Z               "line": 342
2026-06-19T05:28:32.5297483Z             }
2026-06-19T05:28:32.5297584Z           ]
2026-06-19T05:28:32.5297687Z         },
2026-06-19T05:28:32.5297793Z         "unit": {
2026-06-19T05:28:32.5297908Z           "complete": true,
2026-06-19T05:28:32.5298020Z           "evidence": [
2026-06-19T05:28:32.5298115Z             {
2026-06-19T05:28:32.5298262Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5298370Z               "line": 293
2026-06-19T05:28:32.5298475Z             },
2026-06-19T05:28:32.5298581Z             {
2026-06-19T05:28:32.5298723Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5298834Z               "line": 304
2026-06-19T05:28:32.5298939Z             },
2026-06-19T05:28:32.5299110Z             {
2026-06-19T05:28:32.5299263Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5299367Z               "line": 406
2026-06-19T05:28:32.5299473Z             },
2026-06-19T05:28:32.5299567Z             {
2026-06-19T05:28:32.5299749Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:28:32.5299863Z               "line": 72
2026-06-19T05:28:32.5299968Z             },
2026-06-19T05:28:32.5300069Z             {
2026-06-19T05:28:32.5300235Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:28:32.5300340Z               "line": 82
2026-06-19T05:28:32.5300442Z             },
2026-06-19T05:28:32.5300549Z             {
2026-06-19T05:28:32.5300706Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:28:32.5300824Z               "line": 100
2026-06-19T05:28:32.5300928Z             },
2026-06-19T05:28:32.5301033Z             {
2026-06-19T05:28:32.5301204Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:28:32.5301314Z               "line": 110
2026-06-19T05:28:32.5301415Z             },
2026-06-19T05:28:32.5301515Z             {
2026-06-19T05:28:32.5301677Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-19T05:28:32.5301801Z               "line": 125
2026-06-19T05:28:32.5301905Z             },
2026-06-19T05:28:32.5302007Z             {
2026-06-19T05:28:32.5302158Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5302268Z               "line": 1044
2026-06-19T05:28:32.5302359Z             },
2026-06-19T05:28:32.5302454Z             {
2026-06-19T05:28:32.5302607Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5302716Z               "line": 1110
2026-06-19T05:28:32.5302821Z             },
2026-06-19T05:28:32.5302922Z             {
2026-06-19T05:28:32.5303087Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5303193Z               "line": 1357
2026-06-19T05:28:32.5303295Z             }
2026-06-19T05:28:32.5303402Z           ]
2026-06-19T05:28:32.5303497Z         }
2026-06-19T05:28:32.5303602Z       }
2026-06-19T05:28:32.5303698Z     },
2026-06-19T05:28:32.5303802Z     {
2026-06-19T05:28:32.5303917Z       "id": "REQ-PAIR-6",
2026-06-19T05:28:32.5304203Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-19T05:28:32.5304322Z       "requiredStages": [
2026-06-19T05:28:32.5304431Z         "impl",
2026-06-19T05:28:32.5304536Z         "unit"
2026-06-19T05:28:32.5304642Z       ],
2026-06-19T05:28:32.5304751Z       "stages": {
2026-06-19T05:28:32.5304856Z         "doc": {
2026-06-19T05:28:32.5304976Z           "complete": false,
2026-06-19T05:28:32.5305090Z           "evidence": []
2026-06-19T05:28:32.5305191Z         },
2026-06-19T05:28:32.5305404Z         "impl": {
2026-06-19T05:28:32.5305510Z           "complete": true,
2026-06-19T05:28:32.5305615Z           "evidence": [
2026-06-19T05:28:32.5305713Z             {
2026-06-19T05:28:32.5305861Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5305979Z               "line": 3204
2026-06-19T05:28:32.5306082Z             },
2026-06-19T05:28:32.5306188Z             {
2026-06-19T05:28:32.5306411Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5306532Z               "line": 3585
2026-06-19T05:28:32.5306636Z             },
2026-06-19T05:28:32.5306745Z             {
2026-06-19T05:28:32.5306894Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.5307003Z               "line": 18
2026-06-19T05:28:32.5307104Z             },
2026-06-19T05:28:32.5307209Z             {
2026-06-19T05:28:32.5307350Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.5307457Z               "line": 49
2026-06-19T05:28:32.5307565Z             },
2026-06-19T05:28:32.5307670Z             {
2026-06-19T05:28:32.5307796Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.5307908Z               "line": 318
2026-06-19T05:28:32.5308004Z             }
2026-06-19T05:28:32.5308101Z           ]
2026-06-19T05:28:32.5308200Z         },
2026-06-19T05:28:32.5308305Z         "int": {
2026-06-19T05:28:32.5308416Z           "complete": false,
2026-06-19T05:28:32.5308524Z           "evidence": []
2026-06-19T05:28:32.5308628Z         },
2026-06-19T05:28:32.5308728Z         "unit": {
2026-06-19T05:28:32.5308851Z           "complete": true,
2026-06-19T05:28:32.5309031Z           "evidence": [
2026-06-19T05:28:32.5309136Z             {
2026-06-19T05:28:32.5309274Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5309380Z               "line": 10723
2026-06-19T05:28:32.5309480Z             },
2026-06-19T05:28:32.5309584Z             {
2026-06-19T05:28:32.5309709Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5309809Z               "line": 10740
2026-06-19T05:28:32.5309917Z             },
2026-06-19T05:28:32.5310024Z             {
2026-06-19T05:28:32.5310166Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.5310280Z               "line": 383
2026-06-19T05:28:32.5310381Z             },
2026-06-19T05:28:32.5310485Z             {
2026-06-19T05:28:32.5310615Z               "path": "crates/spt/src/elevation.rs",
2026-06-19T05:28:32.5310729Z               "line": 392
2026-06-19T05:28:32.5310833Z             }
2026-06-19T05:28:32.5310940Z           ]
2026-06-19T05:28:32.5311039Z         }
2026-06-19T05:28:32.5311138Z       }
2026-06-19T05:28:32.5311242Z     },
2026-06-19T05:28:32.5311343Z     {
2026-06-19T05:28:32.5311464Z       "id": "REQ-PAIR-7",
2026-06-19T05:28:32.5311655Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-19T05:28:32.5311774Z       "requiredStages": [],
2026-06-19T05:28:32.5311869Z       "stages": {
2026-06-19T05:28:32.5311961Z         "doc": {
2026-06-19T05:28:32.5312089Z           "complete": false,
2026-06-19T05:28:32.5312188Z           "evidence": []
2026-06-19T05:28:32.5312290Z         },
2026-06-19T05:28:32.5312408Z         "impl": {
2026-06-19T05:28:32.5312513Z           "complete": false,
2026-06-19T05:28:32.5312628Z           "evidence": []
2026-06-19T05:28:32.5312723Z         },
2026-06-19T05:28:32.5312828Z         "int": {
2026-06-19T05:28:32.5312938Z           "complete": false,
2026-06-19T05:28:32.5313047Z           "evidence": []
2026-06-19T05:28:32.5313157Z         },
2026-06-19T05:28:32.5313262Z         "unit": {
2026-06-19T05:28:32.5313376Z           "complete": false,
2026-06-19T05:28:32.5313477Z           "evidence": []
2026-06-19T05:28:32.5313577Z         }
2026-06-19T05:28:32.5313681Z       }
2026-06-19T05:28:32.5313787Z     },
2026-06-19T05:28:32.5313892Z     {
2026-06-19T05:28:32.5314000Z       "id": "REQ-PAIR-8",
2026-06-19T05:28:32.5315426Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-19T05:28:32.5315659Z       "requiredStages": [
2026-06-19T05:28:32.5315874Z         "impl",
2026-06-19T05:28:32.5315984Z         "unit"
2026-06-19T05:28:32.5316090Z       ],
2026-06-19T05:28:32.5316198Z       "stages": {
2026-06-19T05:28:32.5316302Z         "doc": {
2026-06-19T05:28:32.5316417Z           "complete": false,
2026-06-19T05:28:32.5316520Z           "evidence": []
2026-06-19T05:28:32.5316619Z         },
2026-06-19T05:28:32.5316729Z         "impl": {
2026-06-19T05:28:32.5316840Z           "complete": true,
2026-06-19T05:28:32.5316952Z           "evidence": [
2026-06-19T05:28:32.5317058Z             {
2026-06-19T05:28:32.5317220Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5317339Z               "line": 577
2026-06-19T05:28:32.5317445Z             },
2026-06-19T05:28:32.5317544Z             {
2026-06-19T05:28:32.5317702Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:28:32.5317811Z               "line": 22
2026-06-19T05:28:32.5317910Z             },
2026-06-19T05:28:32.5318026Z             {
2026-06-19T05:28:32.5318174Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:28:32.5318288Z               "line": 76
2026-06-19T05:28:32.5318398Z             },
2026-06-19T05:28:32.5318488Z             {
2026-06-19T05:28:32.5318647Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:28:32.5318746Z               "line": 127
2026-06-19T05:28:32.5318851Z             }
2026-06-19T05:28:32.5319028Z           ]
2026-06-19T05:28:32.5319122Z         },
2026-06-19T05:28:32.5319226Z         "int": {
2026-06-19T05:28:32.5319336Z           "complete": false,
2026-06-19T05:28:32.5319453Z           "evidence": []
2026-06-19T05:28:32.5319552Z         },
2026-06-19T05:28:32.5319664Z         "unit": {
2026-06-19T05:28:32.5319772Z           "complete": true,
2026-06-19T05:28:32.5319886Z           "evidence": [
2026-06-19T05:28:32.5319992Z             {
2026-06-19T05:28:32.5320144Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:28:32.5320250Z               "line": 183
2026-06-19T05:28:32.5320349Z             },
2026-06-19T05:28:32.5320449Z             {
2026-06-19T05:28:32.5320598Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:28:32.5320702Z               "line": 195
2026-06-19T05:28:32.5320812Z             },
2026-06-19T05:28:32.5320913Z             {
2026-06-19T05:28:32.5321060Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:28:32.5321170Z               "line": 211
2026-06-19T05:28:32.5321280Z             },
2026-06-19T05:28:32.5321379Z             {
2026-06-19T05:28:32.5321519Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-19T05:28:32.5321637Z               "line": 227
2026-06-19T05:28:32.5321731Z             }
2026-06-19T05:28:32.5321831Z           ]
2026-06-19T05:28:32.5321931Z         }
2026-06-19T05:28:32.5322034Z       }
2026-06-19T05:28:32.5322139Z     },
2026-06-19T05:28:32.5322239Z     {
2026-06-19T05:28:32.5322358Z       "id": "REQ-PICKER-1",
2026-06-19T05:28:32.5325967Z       "title": "The picker renders a FOUR-state endpoint status (extending the W2 online/offline duality): the list-item square AND a color-coded STATUS line at the top of the pick-existing right-side details both show — gray OFFLINE; green ONLINE (online + PTY-controllable spt-hosted, not controlled); amber 'ONLINE - HARNESS ONLY' (online but NOT broker-PTY-controllable = harness-hosted, no broker PTY seat — today mis-shows green); blue 'ONLINE + CONTROLLED' (online + driven_by.is_some()). Derived on EndpointRow from {offline | controllable | driven_by} with precedence offline→gray, else driven_by→blue, else !controllable→amber, else green (driven_by outranks harness-only; mutually exclusive in practice — a harness-only endpoint has no broker PTY to control). The controllable discriminator is a NEW InfoJson.controllable: Option<bool> (serde-default, N-1-safe), stamped at the establish seam — cmd_listen (harness-hosted relay, no broker PTY) → Some(false); cmd_bind live_agent (spt-hosted broker PTY) → Some(true); absent → not-controllable (amber) default (harness-hosted is the common mis-reported case; one bind self-corrects). Store-projection-only (no live daemon query — doyle ruling). (v0.10.0)",
2026-06-19T05:28:32.5326368Z       "requiredStages": [
2026-06-19T05:28:32.5326481Z         "impl",
2026-06-19T05:28:32.5326591Z         "unit"
2026-06-19T05:28:32.5326692Z       ],
2026-06-19T05:28:32.5326801Z       "stages": {
2026-06-19T05:28:32.5326895Z         "doc": {
2026-06-19T05:28:32.5327010Z           "complete": false,
2026-06-19T05:28:32.5327117Z           "evidence": []
2026-06-19T05:28:32.5327241Z         },
2026-06-19T05:28:32.5327352Z         "impl": {
2026-06-19T05:28:32.5327456Z           "complete": true,
2026-06-19T05:28:32.5327570Z           "evidence": [
2026-06-19T05:28:32.5327671Z             {
2026-06-19T05:28:32.5327822Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5327924Z               "line": 239
2026-06-19T05:28:32.5328029Z             },
2026-06-19T05:28:32.5328156Z             {
2026-06-19T05:28:32.5328300Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5328414Z               "line": 237
2026-06-19T05:28:32.5328514Z             }
2026-06-19T05:28:32.5328620Z           ]
2026-06-19T05:28:32.5328720Z         },
2026-06-19T05:28:32.5328829Z         "int": {
2026-06-19T05:28:32.5329020Z           "complete": false,
2026-06-19T05:28:32.5329124Z           "evidence": []
2026-06-19T05:28:32.5329231Z         },
2026-06-19T05:28:32.5329334Z         "unit": {
2026-06-19T05:28:32.5329459Z           "complete": true,
2026-06-19T05:28:32.5329564Z           "evidence": [
2026-06-19T05:28:32.5331750Z             {
2026-06-19T05:28:32.5331924Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.5332040Z               "line": 450
2026-06-19T05:28:32.5332145Z             },
2026-06-19T05:28:32.5332248Z             {
2026-06-19T05:28:32.5332401Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5332519Z               "line": 722
2026-06-19T05:28:32.5332627Z             },
2026-06-19T05:28:32.5332727Z             {
2026-06-19T05:28:32.5332866Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5332980Z               "line": 819
2026-06-19T05:28:32.5333077Z             },
2026-06-19T05:28:32.5333181Z             {
2026-06-19T05:28:32.5333323Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:28:32.5333443Z               "line": 447
2026-06-19T05:28:32.5333547Z             }
2026-06-19T05:28:32.5333648Z           ]
2026-06-19T05:28:32.5333749Z         }
2026-06-19T05:28:32.5333853Z       }
2026-06-19T05:28:32.5333948Z     },
2026-06-19T05:28:32.5334045Z     {
2026-06-19T05:28:32.5334168Z       "id": "REQ-PICKER-2",
2026-06-19T05:28:32.5336164Z       "title": "The picker's project-history loader reads the git-backed context store, not the bare working tree: data.rs project_history_for enumerates an endpoint's projects via the BranchStore branch set (the context store keeps per-project context in git branches — contextstore::project_branch(project_id), checked out to projects/<project>/<id>/ only on-demand) instead of raw std::fs::read_dir over the empty working tree (which returned empty for ALL rows incl wall-a — the operator bug). Ordered newest→oldest by branch commit recency; degrades to empty (informational pane), never fails. (v0.10.0)",
2026-06-19T05:28:32.5336303Z       "requiredStages": [
2026-06-19T05:28:32.5336408Z         "impl",
2026-06-19T05:28:32.5336522Z         "unit"
2026-06-19T05:28:32.5336623Z       ],
2026-06-19T05:28:32.5336727Z       "stages": {
2026-06-19T05:28:32.5336980Z         "doc": {
2026-06-19T05:28:32.5337104Z           "complete": false,
2026-06-19T05:28:32.5337210Z           "evidence": []
2026-06-19T05:28:32.5337318Z         },
2026-06-19T05:28:32.5337417Z         "impl": {
2026-06-19T05:28:32.5337527Z           "complete": true,
2026-06-19T05:28:32.5337635Z           "evidence": [
2026-06-19T05:28:32.5337844Z             {
2026-06-19T05:28:32.5338021Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5338135Z               "line": 183
2026-06-19T05:28:32.5338241Z             },
2026-06-19T05:28:32.5338345Z             {
2026-06-19T05:28:32.5338489Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:28:32.5338598Z               "line": 254
2026-06-19T05:28:32.5338698Z             }
2026-06-19T05:28:32.5338804Z           ]
2026-06-19T05:28:32.5338898Z         },
2026-06-19T05:28:32.5339084Z         "int": {
2026-06-19T05:28:32.5339203Z           "complete": false,
2026-06-19T05:28:32.5339318Z           "evidence": []
2026-06-19T05:28:32.5339418Z         },
2026-06-19T05:28:32.5339528Z         "unit": {
2026-06-19T05:28:32.5339642Z           "complete": true,
2026-06-19T05:28:32.5339748Z           "evidence": [
2026-06-19T05:28:32.5339857Z             {
2026-06-19T05:28:32.5340004Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5340115Z               "line": 655
2026-06-19T05:28:32.5340223Z             }
2026-06-19T05:28:32.5340322Z           ]
2026-06-19T05:28:32.5340428Z         }
2026-06-19T05:28:32.5340535Z       }
2026-06-19T05:28:32.5340634Z     },
2026-06-19T05:28:32.5340736Z     {
2026-06-19T05:28:32.5340855Z       "id": "REQ-PICKER-3",
2026-06-19T05:28:32.5343355Z       "title": "A self-owned subnet row reconciles its status to the LIVE roster: a Subnet-category row whose endpoint_id overlaps a local (is_local) roster id is self-owned (this node hosts it), so its status square is OVERRIDDEN with the live roster status — the WAN registry snapshot (wansend::load_snapshots) is a periodically-advertised, independently-stale projection, while the local roster (p.alive) is ground truth for an endpoint this node hosts. One status square per endpoint (CONTEXT.md:348-350 — nothing licenses opposite squares for one endpoint across its Local vs Subnet listings). A reconcile pass in data.rs after the local_rows + subnet_rows gather; BOTH category listings are preserved (Local + Subnet are legitimately distinct views — you are in your own subnet), only the STATUS is unified. (v0.10.0)",
2026-06-19T05:28:32.5343502Z       "requiredStages": [
2026-06-19T05:28:32.5343603Z         "impl",
2026-06-19T05:28:32.5343707Z         "unit"
2026-06-19T05:28:32.5343807Z       ],
2026-06-19T05:28:32.5343913Z       "stages": {
2026-06-19T05:28:32.5344008Z         "doc": {
2026-06-19T05:28:32.5344126Z           "complete": false,
2026-06-19T05:28:32.5344228Z           "evidence": []
2026-06-19T05:28:32.5344328Z         },
2026-06-19T05:28:32.5344437Z         "impl": {
2026-06-19T05:28:32.5344566Z           "complete": true,
2026-06-19T05:28:32.5344670Z           "evidence": [
2026-06-19T05:28:32.5344761Z             {
2026-06-19T05:28:32.5344905Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:28:32.5345013Z               "line": 87
2026-06-19T05:28:32.5345114Z             }
2026-06-19T05:28:32.5345220Z           ]
2026-06-19T05:28:32.5345324Z         },
2026-06-19T05:28:32.5345414Z         "int": {
2026-06-19T05:28:32.5345525Z           "complete": false,
2026-06-19T05:28:32.5345629Z           "evidence": []
2026-06-19T05:28:32.5345733Z         },
2026-06-19T05:28:32.5345833Z         "unit": {
2026-06-19T05:28:32.5345953Z           "complete": true,
2026-06-19T05:28:32.5346066Z           "evidence": [
2026-06-19T05:28:32.5346153Z             {
2026-06-19T05:28:32.5346301Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:28:32.5346410Z               "line": 324
2026-06-19T05:28:32.5346511Z             }
2026-06-19T05:28:32.5346611Z           ]
2026-06-19T05:28:32.5346830Z         }
2026-06-19T05:28:32.5346925Z       }
2026-06-19T05:28:32.5347024Z     },
2026-06-19T05:28:32.5347126Z     {
2026-06-19T05:28:32.5347234Z       "id": "REQ-PICKER-4",
2026-06-19T05:28:32.5349420Z       "title": "The picker's Subnet category renders the canonical node LABEL, not bare key-hex: a subnet row's node renders as 'LABEL (keyprefix…)' (e.g. 'HFENDULEAM (bcead52b…)') per CONTEXT.md:650 + Instance.node_label, NOT the raw node key-hex (SPT_DEV:14efb80cb… — a picker-only regression because resource_projection→ResourceRow drops node_label, so data.rs subnet_rows uses the raw row.node). Thread node_label into the picker subnet path (ResourceRow gains node_label, or subnet_rows looks it up via the registry's node_labels) and REUSE the one canonical render (format!(\"{l} ({}…)\", key_prefix) — cli.rs / wansend.rs), never a re-implementation. (v0.10.0)",
2026-06-19T05:28:32.5349673Z       "requiredStages": [
2026-06-19T05:28:32.5349768Z         "impl",
2026-06-19T05:28:32.5349892Z         "unit"
2026-06-19T05:28:32.5349993Z       ],
2026-06-19T05:28:32.5350102Z       "stages": {
2026-06-19T05:28:32.5350197Z         "doc": {
2026-06-19T05:28:32.5350318Z           "complete": false,
2026-06-19T05:28:32.5350435Z           "evidence": []
2026-06-19T05:28:32.5350526Z         },
2026-06-19T05:28:32.5350632Z         "impl": {
2026-06-19T05:28:32.5350750Z           "complete": true,
2026-06-19T05:28:32.5350877Z           "evidence": [
2026-06-19T05:28:32.5350978Z             {
2026-06-19T05:28:32.5351138Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5351257Z               "line": 353
2026-06-19T05:28:32.5351358Z             }
2026-06-19T05:28:32.5351453Z           ]
2026-06-19T05:28:32.5351557Z         },
2026-06-19T05:28:32.5351663Z         "int": {
2026-06-19T05:28:32.5351777Z           "complete": false,
2026-06-19T05:28:32.5351877Z           "evidence": []
2026-06-19T05:28:32.5351978Z         },
2026-06-19T05:28:32.5352082Z         "unit": {
2026-06-19T05:28:32.5352202Z           "complete": true,
2026-06-19T05:28:32.5352312Z           "evidence": [
2026-06-19T05:28:32.5352416Z             {
2026-06-19T05:28:32.5352570Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5352678Z               "line": 1246
2026-06-19T05:28:32.5352783Z             }
2026-06-19T05:28:32.5352885Z           ]
2026-06-19T05:28:32.5352998Z         }
2026-06-19T05:28:32.5353093Z       }
2026-06-19T05:28:32.5353190Z     },
2026-06-19T05:28:32.5353294Z     {
2026-06-19T05:28:32.5353402Z       "id": "REQ-PICKER-5",
2026-06-19T05:28:32.5356451Z       "title": "`spt endpoint list` (bare/subnet view) renders an ALIGNED table with canonical node labels: cmd_endpoint_list prints subnet rows with `\\t` TAB separators (cli.rs:~1651-1662) so variable-width endpoint_ids snap fields to different tab-stops → a RAGGED status column (operator screenshot: X/help statuses misaligned vs rt-*/sptc-*/wall-a); and it calls the node renderer with no label → bare key-hex for every row (SAME ResourceRow-drops-node_label root as REQ-PICKER-4). FIX: max-width per-column padding (mirror render_node_rows' pad, pad by char count not byte len — '…' is multibyte) replacing the tabs, and render the node via the shared node_label_display now that ResourceRow carries node_label (REQ-PICKER-4). Extract a pure row-formatter seam so the alignment+label is unit-testable. ALSO: the bare list is the SUBNET view (a just-run LOCAL perch is invisible cross-subnet until the next advertise tick), so emit a `--local` hint line so a freshly-run endpoint isn't perceived as lost. (v0.10.0; operator-flagged + doyle dispatch 2026-06-17)",
2026-06-19T05:28:32.5356612Z       "requiredStages": [
2026-06-19T05:28:32.5356713Z         "impl",
2026-06-19T05:28:32.5356817Z         "unit"
2026-06-19T05:28:32.5357018Z       ],
2026-06-19T05:28:32.5357123Z       "stages": {
2026-06-19T05:28:32.5357227Z         "doc": {
2026-06-19T05:28:32.5357342Z           "complete": false,
2026-06-19T05:28:32.5357452Z           "evidence": []
2026-06-19T05:28:32.5357672Z         },
2026-06-19T05:28:32.5357795Z         "impl": {
2026-06-19T05:28:32.5357914Z           "complete": true,
2026-06-19T05:28:32.5358015Z           "evidence": [
2026-06-19T05:28:32.5358123Z             {
2026-06-19T05:28:32.5358258Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5358369Z               "line": 1695
2026-06-19T05:28:32.5358547Z             }
2026-06-19T05:28:32.5358652Z           ]
2026-06-19T05:28:32.5358756Z         },
2026-06-19T05:28:32.5358860Z         "int": {
2026-06-19T05:28:32.5359046Z           "complete": false,
2026-06-19T05:28:32.5359150Z           "evidence": []
2026-06-19T05:28:32.5359260Z         },
2026-06-19T05:28:32.5359366Z         "unit": {
2026-06-19T05:28:32.5359479Z           "complete": true,
2026-06-19T05:28:32.5359585Z           "evidence": [
2026-06-19T05:28:32.5359689Z             {
2026-06-19T05:28:32.5359822Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5359933Z               "line": 7383
2026-06-19T05:28:32.5360042Z             }
2026-06-19T05:28:32.5360147Z           ]
2026-06-19T05:28:32.5360248Z         }
2026-06-19T05:28:32.5360347Z       }
2026-06-19T05:28:32.5360438Z     },
2026-06-19T05:28:32.5360539Z     {
2026-06-19T05:28:32.5360686Z       "id": "REQ-PICKER-ADAPTER-DESCRIPTION",
2026-06-19T05:28:32.5362103Z       "title": "The Create-new adapter-CHOICE screen of `spt endpoint run`'s picker shows a right-hand Description panel (like the Pick-existing endpoint picker's two-pane) surfacing per-adapter detail: install date, last-updated, adapter TYPE / the endpoint types it hosts, and the adapter description — so the user can see WHAT each adapter is before choosing it (today the selector lists bare names). DEFERRED fast-follow to v0.12.0 (operator 2026-06-18). (post-v0.12.0)",
2026-06-19T05:28:32.5362238Z       "requiredStages": [],
2026-06-19T05:28:32.5362341Z       "stages": {
2026-06-19T05:28:32.5362447Z         "doc": {
2026-06-19T05:28:32.5362552Z           "complete": false,
2026-06-19T05:28:32.5362675Z           "evidence": []
2026-06-19T05:28:32.5362776Z         },
2026-06-19T05:28:32.5362881Z         "impl": {
2026-06-19T05:28:32.5362995Z           "complete": false,
2026-06-19T05:28:32.5363100Z           "evidence": []
2026-06-19T05:28:32.5363196Z         },
2026-06-19T05:28:32.5363286Z         "int": {
2026-06-19T05:28:32.5363406Z           "complete": false,
2026-06-19T05:28:32.5363516Z           "evidence": []
2026-06-19T05:28:32.5363619Z         },
2026-06-19T05:28:32.5363716Z         "unit": {
2026-06-19T05:28:32.5363830Z           "complete": false,
2026-06-19T05:28:32.5363948Z           "evidence": []
2026-06-19T05:28:32.5364048Z         }
2026-06-19T05:28:32.5364152Z       }
2026-06-19T05:28:32.5364251Z     },
2026-06-19T05:28:32.5364355Z     {
2026-06-19T05:28:32.5364485Z       "id": "REQ-PICKER-HISTORY-FRESH",
2026-06-19T05:28:32.5365624Z       "title": "The `spt endpoint run` picker shows project history for FRESH endpoints (operator-raised v0.12.0 real-harness finding). Symptom: a fresh endpoint shows no project history in the picker. ROOT TBD — investigate the project-history loader (v0.10.0 PICKER-2, picker/data.rs) before fixing: distinguish a real loader bug from 'fresh = no history yet' semantics. (v0.12.1)",
2026-06-19T05:28:32.5365753Z       "requiredStages": [
2026-06-19T05:28:32.5365858Z         "impl",
2026-06-19T05:28:32.5365972Z         "unit"
2026-06-19T05:28:32.5366077Z       ],
2026-06-19T05:28:32.5366182Z       "stages": {
2026-06-19T05:28:32.5366297Z         "doc": {
2026-06-19T05:28:32.5366411Z           "complete": false,
2026-06-19T05:28:32.5366525Z           "evidence": []
2026-06-19T05:28:32.5366626Z         },
2026-06-19T05:28:32.5366735Z         "impl": {
2026-06-19T05:28:32.5366843Z           "complete": true,
2026-06-19T05:28:32.5366948Z           "evidence": [
2026-06-19T05:28:32.5367044Z             {
2026-06-19T05:28:32.5367186Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:28:32.5367297Z               "line": 233
2026-06-19T05:28:32.5367544Z             }
2026-06-19T05:28:32.5367650Z           ]
2026-06-19T05:28:32.5367746Z         },
2026-06-19T05:28:32.5367854Z         "int": {
2026-06-19T05:28:32.5367970Z           "complete": false,
2026-06-19T05:28:32.5368079Z           "evidence": []
2026-06-19T05:28:32.5368183Z         },
2026-06-19T05:28:32.5368275Z         "unit": {
2026-06-19T05:28:32.5368513Z           "complete": true,
2026-06-19T05:28:32.5368618Z           "evidence": [
2026-06-19T05:28:32.5368717Z             {
2026-06-19T05:28:32.5368861Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:28:32.5369036Z               "line": 355
2026-06-19T05:28:32.5369136Z             }
2026-06-19T05:28:32.5369236Z           ]
2026-06-19T05:28:32.5369335Z         }
2026-06-19T05:28:32.5369439Z       }
2026-06-19T05:28:32.5369534Z     },
2026-06-19T05:28:32.5369636Z     {
2026-06-19T05:28:32.5369758Z       "id": "REQ-PICKER-ONLINE-ACTION",
2026-06-19T05:28:32.5371322Z       "title": "The `spt endpoint run` picker shows the correct action for an ALREADY-ONLINE endpoint — Attach, NOT 'Start now' (operator-raised v0.12.0 real-harness finding). Symptom: the picker offers 'Start now' for endpoints that are already online. ROOT TBD — investigate the status→action mapping (v0.10.0 PICKER-1 four-state status, picker/model.rs): is it reading live/online state correctly, or rendering stale/wedged broker state (i.e. partly a symptom of the broker wedge / status=online latch)? Fix so online → Attach. (v0.12.1)",
2026-06-19T05:28:32.5371476Z       "requiredStages": [
2026-06-19T05:28:32.5371584Z         "impl",
2026-06-19T05:28:32.5371690Z         "unit"
2026-06-19T05:28:32.5371791Z       ],
2026-06-19T05:28:32.5371898Z       "stages": {
2026-06-19T05:28:32.5372003Z         "doc": {
2026-06-19T05:28:32.5372113Z           "complete": false,
2026-06-19T05:28:32.5372230Z           "evidence": []
2026-06-19T05:28:32.5372329Z         },
2026-06-19T05:28:32.5372430Z         "impl": {
2026-06-19T05:28:32.5372558Z           "complete": true,
2026-06-19T05:28:32.5372668Z           "evidence": [
2026-06-19T05:28:32.5372765Z             {
2026-06-19T05:28:32.5372916Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5373031Z               "line": 619
2026-06-19T05:28:32.5373131Z             }
2026-06-19T05:28:32.5373235Z           ]
2026-06-19T05:28:32.5373336Z         },
2026-06-19T05:28:32.5373450Z         "int": {
2026-06-19T05:28:32.5373560Z           "complete": false,
2026-06-19T05:28:32.5373680Z           "evidence": []
2026-06-19T05:28:32.5373775Z         },
2026-06-19T05:28:32.5373879Z         "unit": {
2026-06-19T05:28:32.5373995Z           "complete": true,
2026-06-19T05:28:32.5374099Z           "evidence": [
2026-06-19T05:28:32.5374204Z             {
2026-06-19T05:28:32.5374348Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5374461Z               "line": 993
2026-06-19T05:28:32.5374564Z             },
2026-06-19T05:28:32.5374665Z             {
2026-06-19T05:28:32.5374811Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5374915Z               "line": 1007
2026-06-19T05:28:32.5375016Z             }
2026-06-19T05:28:32.5375116Z           ]
2026-06-19T05:28:32.5375220Z         }
2026-06-19T05:28:32.5375321Z       }
2026-06-19T05:28:32.5375422Z     },
2026-06-19T05:28:32.5375516Z     {
2026-06-19T05:28:32.5375632Z       "id": "REQ-PRES-1",
2026-06-19T05:28:32.5377028Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-19T05:28:32.5377148Z       "requiredStages": [
2026-06-19T05:28:32.5377253Z         "impl",
2026-06-19T05:28:32.5377361Z         "unit",
2026-06-19T05:28:32.5377581Z         "int"
2026-06-19T05:28:32.5377671Z       ],
2026-06-19T05:28:32.5377780Z       "stages": {
2026-06-19T05:28:32.5377881Z         "doc": {
2026-06-19T05:28:32.5377995Z           "complete": true,
2026-06-19T05:28:32.5378104Z           "evidence": [
2026-06-19T05:28:32.5378210Z             {
2026-06-19T05:28:32.5378334Z               "path": "docs/DEFERRED.md",
2026-06-19T05:28:32.5378548Z               "line": 11
2026-06-19T05:28:32.5378649Z             }
2026-06-19T05:28:32.5378753Z           ]
2026-06-19T05:28:32.5378854Z         },
2026-06-19T05:28:32.5379034Z         "impl": {
2026-06-19T05:28:32.5379154Z           "complete": true,
2026-06-19T05:28:32.5379258Z           "evidence": [
2026-06-19T05:28:32.5379363Z             {
2026-06-19T05:28:32.5379512Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.5379620Z               "line": 515
2026-06-19T05:28:32.5379724Z             },
2026-06-19T05:28:32.5379825Z             {
2026-06-19T05:28:32.5379989Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.5380094Z               "line": 567
2026-06-19T05:28:32.5380196Z             },
2026-06-19T05:28:32.5380294Z             {
2026-06-19T05:28:32.5380428Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5380534Z               "line": 188
2026-06-19T05:28:32.5380633Z             },
2026-06-19T05:28:32.5380734Z             {
2026-06-19T05:28:32.5380877Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5380991Z               "line": 214
2026-06-19T05:28:32.5381101Z             },
2026-06-19T05:28:32.5381201Z             {
2026-06-19T05:28:32.5381349Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:28:32.5381454Z               "line": 28
2026-06-19T05:28:32.5381563Z             },
2026-06-19T05:28:32.5381649Z             {
2026-06-19T05:28:32.5381787Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:28:32.5381906Z               "line": 105
2026-06-19T05:28:32.5381998Z             },
2026-06-19T05:28:32.5382098Z             {
2026-06-19T05:28:32.5382240Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:28:32.5382351Z               "line": 161
2026-06-19T05:28:32.5382454Z             },
2026-06-19T05:28:32.5382554Z             {
2026-06-19T05:28:32.5382706Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:28:32.5382818Z               "line": 180
2026-06-19T05:28:32.5382928Z             },
2026-06-19T05:28:32.5383024Z             {
2026-06-19T05:28:32.5383176Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5383286Z               "line": 421
2026-06-19T05:28:32.5383391Z             },
2026-06-19T05:28:32.5383500Z             {
2026-06-19T05:28:32.5383649Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5383767Z               "line": 289
2026-06-19T05:28:32.5383867Z             },
2026-06-19T05:28:32.5383969Z             {
2026-06-19T05:28:32.5384105Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5384211Z               "line": 336
2026-06-19T05:28:32.5384316Z             },
2026-06-19T05:28:32.5384411Z             {
2026-06-19T05:28:32.5384555Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5384664Z               "line": 362
2026-06-19T05:28:32.5384773Z             },
2026-06-19T05:28:32.5384879Z             {
2026-06-19T05:28:32.5385021Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5385129Z               "line": 100
2026-06-19T05:28:32.5385230Z             }
2026-06-19T05:28:32.5385342Z           ]
2026-06-19T05:28:32.5385442Z         },
2026-06-19T05:28:32.5385552Z         "int": {
2026-06-19T05:28:32.5385667Z           "complete": true,
2026-06-19T05:28:32.5385780Z           "evidence": [
2026-06-19T05:28:32.5385886Z             {
2026-06-19T05:28:32.5386033Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.5386329Z               "line": 561
2026-06-19T05:28:32.5386434Z             },
2026-06-19T05:28:32.5386535Z             {
2026-06-19T05:28:32.5386691Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5386802Z               "line": 746
2026-06-19T05:28:32.5386902Z             },
2026-06-19T05:28:32.5386997Z             {
2026-06-19T05:28:32.5387263Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5387364Z               "line": 1164
2026-06-19T05:28:32.5387470Z             }
2026-06-19T05:28:32.5387578Z           ]
2026-06-19T05:28:32.5387674Z         },
2026-06-19T05:28:32.5387780Z         "unit": {
2026-06-19T05:28:32.5387897Z           "complete": true,
2026-06-19T05:28:32.5388001Z           "evidence": [
2026-06-19T05:28:32.5388098Z             {
2026-06-19T05:28:32.5388245Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5388359Z               "line": 674
2026-06-19T05:28:32.5388456Z             },
2026-06-19T05:28:32.5388569Z             {
2026-06-19T05:28:32.5388718Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:28:32.5388827Z               "line": 238
2026-06-19T05:28:32.5388932Z             },
2026-06-19T05:28:32.5389128Z             {
2026-06-19T05:28:32.5389270Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:28:32.5389381Z               "line": 269
2026-06-19T05:28:32.5389485Z             },
2026-06-19T05:28:32.5389589Z             {
2026-06-19T05:28:32.5389734Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:28:32.5389837Z               "line": 305
2026-06-19T05:28:32.5389938Z             },
2026-06-19T05:28:32.5390034Z             {
2026-06-19T05:28:32.5390180Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-19T05:28:32.5390299Z               "line": 336
2026-06-19T05:28:32.5390390Z             },
2026-06-19T05:28:32.5390497Z             {
2026-06-19T05:28:32.5390645Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5390761Z               "line": 1217
2026-06-19T05:28:32.5390864Z             },
2026-06-19T05:28:32.5390955Z             {
2026-06-19T05:28:32.5391103Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5391217Z               "line": 1163
2026-06-19T05:28:32.5391323Z             }
2026-06-19T05:28:32.5391423Z           ]
2026-06-19T05:28:32.5391526Z         }
2026-06-19T05:28:32.5391633Z       }
2026-06-19T05:28:32.5391737Z     },
2026-06-19T05:28:32.5391841Z     {
2026-06-19T05:28:32.5391952Z       "id": "REQ-RC-1",
2026-06-19T05:28:32.5393956Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-19T05:28:32.5394103Z       "requiredStages": [
2026-06-19T05:28:32.5394224Z         "impl",
2026-06-19T05:28:32.5394328Z         "unit",
2026-06-19T05:28:32.5394427Z         "int"
2026-06-19T05:28:32.5394533Z       ],
2026-06-19T05:28:32.5394643Z       "stages": {
2026-06-19T05:28:32.5394747Z         "doc": {
2026-06-19T05:28:32.5394872Z           "complete": false,
2026-06-19T05:28:32.5394976Z           "evidence": []
2026-06-19T05:28:32.5395081Z         },
2026-06-19T05:28:32.5395182Z         "impl": {
2026-06-19T05:28:32.5395295Z           "complete": true,
2026-06-19T05:28:32.5395401Z           "evidence": [
2026-06-19T05:28:32.5395502Z             {
2026-06-19T05:28:32.5395652Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.5395875Z               "line": 896
2026-06-19T05:28:32.5395983Z             },
2026-06-19T05:28:32.5396083Z             {
2026-06-19T05:28:32.5396236Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.5396350Z               "line": 1243
2026-06-19T05:28:32.5396451Z             },
2026-06-19T05:28:32.5396713Z             {
2026-06-19T05:28:32.5396861Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5396975Z               "line": 967
2026-06-19T05:28:32.5397076Z             },
2026-06-19T05:28:32.5397175Z             {
2026-06-19T05:28:32.5397318Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5397429Z               "line": 1001
2026-06-19T05:28:32.5397533Z             },
2026-06-19T05:28:32.5397633Z             {
2026-06-19T05:28:32.5397762Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.5397876Z               "line": 22
2026-06-19T05:28:32.5397987Z             },
2026-06-19T05:28:32.5398091Z             {
2026-06-19T05:28:32.5398220Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.5398340Z               "line": 181
2026-06-19T05:28:32.5398443Z             }
2026-06-19T05:28:32.5398543Z           ]
2026-06-19T05:28:32.5398648Z         },
2026-06-19T05:28:32.5398754Z         "int": {
2026-06-19T05:28:32.5398881Z           "complete": true,
2026-06-19T05:28:32.5399073Z           "evidence": [
2026-06-19T05:28:32.5399182Z             {
2026-06-19T05:28:32.5399316Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.5399430Z               "line": 257
2026-06-19T05:28:32.5399539Z             },
2026-06-19T05:28:32.5399636Z             {
2026-06-19T05:28:32.5399783Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.5399888Z               "line": 284
2026-06-19T05:28:32.5399993Z             },
2026-06-19T05:28:32.5400093Z             {
2026-06-19T05:28:32.5400237Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.5400355Z               "line": 412
2026-06-19T05:28:32.5400460Z             }
2026-06-19T05:28:32.5400566Z           ]
2026-06-19T05:28:32.5400665Z         },
2026-06-19T05:28:32.5400768Z         "unit": {
2026-06-19T05:28:32.5400878Z           "complete": true,
2026-06-19T05:28:32.5400996Z           "evidence": [
2026-06-19T05:28:32.5401100Z             {
2026-06-19T05:28:32.5401238Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5401353Z               "line": 1327
2026-06-19T05:28:32.5401457Z             },
2026-06-19T05:28:32.5401568Z             {
2026-06-19T05:28:32.5401696Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.5401815Z               "line": 594
2026-06-19T05:28:32.5401912Z             },
2026-06-19T05:28:32.5402001Z             {
2026-06-19T05:28:32.5402135Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.5402240Z               "line": 623
2026-06-19T05:28:32.5402340Z             },
2026-06-19T05:28:32.5402440Z             {
2026-06-19T05:28:32.5402560Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.5402674Z               "line": 636
2026-06-19T05:28:32.5402779Z             }
2026-06-19T05:28:32.5402879Z           ]
2026-06-19T05:28:32.5402974Z         }
2026-06-19T05:28:32.5403084Z       }
2026-06-19T05:28:32.5403190Z     },
2026-06-19T05:28:32.5403293Z     {
2026-06-19T05:28:32.5403414Z       "id": "REQ-RCVIEW-1",
2026-06-19T05:28:32.5407802Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-19T05:28:32.5408203Z       "requiredStages": [
2026-06-19T05:28:32.5408309Z         "doc",
2026-06-19T05:28:32.5408413Z         "impl",
2026-06-19T05:28:32.5408508Z         "unit",
2026-06-19T05:28:32.5408610Z         "int"
2026-06-19T05:28:32.5408717Z       ],
2026-06-19T05:28:32.5408809Z       "stages": {
2026-06-19T05:28:32.5408915Z         "doc": {
2026-06-19T05:28:32.5409131Z           "complete": true,
2026-06-19T05:28:32.5409237Z           "evidence": [
2026-06-19T05:28:32.5409342Z             {
2026-06-19T05:28:32.5409460Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.5409571Z               "line": 342
2026-06-19T05:28:32.5409675Z             }
2026-06-19T05:28:32.5409775Z           ]
2026-06-19T05:28:32.5409877Z         },
2026-06-19T05:28:32.5409976Z         "impl": {
2026-06-19T05:28:32.5410090Z           "complete": true,
2026-06-19T05:28:32.5410205Z           "evidence": [
2026-06-19T05:28:32.5410310Z             {
2026-06-19T05:28:32.5410458Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-19T05:28:32.5410572Z               "line": 345
2026-06-19T05:28:32.5410676Z             },
2026-06-19T05:28:32.5410778Z             {
2026-06-19T05:28:32.5410924Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.5411034Z               "line": 431
2026-06-19T05:28:32.5411136Z             },
2026-06-19T05:28:32.5411234Z             {
2026-06-19T05:28:32.5411386Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.5411482Z               "line": 442
2026-06-19T05:28:32.5411584Z             },
2026-06-19T05:28:32.5411679Z             {
2026-06-19T05:28:32.5411818Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:28:32.5411923Z               "line": 41
2026-06-19T05:28:32.5412022Z             },
2026-06-19T05:28:32.5412128Z             {
2026-06-19T05:28:32.5412270Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:28:32.5412385Z               "line": 62
2026-06-19T05:28:32.5412486Z             },
2026-06-19T05:28:32.5412590Z             {
2026-06-19T05:28:32.5412730Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.5412834Z               "line": 297
2026-06-19T05:28:32.5412943Z             },
2026-06-19T05:28:32.5413044Z             {
2026-06-19T05:28:32.5413177Z               "path": "crates/spt/src/rc.rs",
2026-06-19T05:28:32.5413286Z               "line": 181
2026-06-19T05:28:32.5413388Z             }
2026-06-19T05:28:32.5413487Z           ]
2026-06-19T05:28:32.5413591Z         },
2026-06-19T05:28:32.5413693Z         "int": {
2026-06-19T05:28:32.5413806Z           "complete": true,
2026-06-19T05:28:32.5413920Z           "evidence": [
2026-06-19T05:28:32.5414027Z             {
2026-06-19T05:28:32.5414173Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.5414291Z               "line": 910
2026-06-19T05:28:32.5414391Z             },
2026-06-19T05:28:32.5414494Z             {
2026-06-19T05:28:32.5414637Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.5414856Z               "line": 950
2026-06-19T05:28:32.5414967Z             },
2026-06-19T05:28:32.5415067Z             {
2026-06-19T05:28:32.5415223Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.5415324Z               "line": 997
2026-06-19T05:28:32.5415434Z             },
2026-06-19T05:28:32.5415548Z             {
2026-06-19T05:28:32.5416283Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.5416410Z               "line": 1109
2026-06-19T05:28:32.5416512Z             }
2026-06-19T05:28:32.5416617Z           ]
2026-06-19T05:28:32.5416715Z         },
2026-06-19T05:28:32.5416820Z         "unit": {
2026-06-19T05:28:32.5416934Z           "complete": true,
2026-06-19T05:28:32.5417042Z           "evidence": [
2026-06-19T05:28:32.5417146Z             {
2026-06-19T05:28:32.5417290Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:28:32.5417408Z               "line": 175
2026-06-19T05:28:32.5417514Z             },
2026-06-19T05:28:32.5417623Z             {
2026-06-19T05:28:32.5417766Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-19T05:28:32.5417882Z               "line": 195
2026-06-19T05:28:32.5417991Z             }
2026-06-19T05:28:32.5418095Z           ]
2026-06-19T05:28:32.5418196Z         }
2026-06-19T05:28:32.5418300Z       }
2026-06-19T05:28:32.5418405Z     },
2026-06-19T05:28:32.5418497Z     {
2026-06-19T05:28:32.5418620Z       "id": "REQ-REACH-1",
2026-06-19T05:28:32.5418793Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-19T05:28:32.5418906Z       "requiredStages": [
2026-06-19T05:28:32.5419083Z         "impl",
2026-06-19T05:28:32.5419189Z         "unit",
2026-06-19T05:28:32.5419302Z         "int"
2026-06-19T05:28:32.5419398Z       ],
2026-06-19T05:28:32.5419499Z       "stages": {
2026-06-19T05:28:32.5419606Z         "doc": {
2026-06-19T05:28:32.5419720Z           "complete": false,
2026-06-19T05:28:32.5419840Z           "evidence": []
2026-06-19T05:28:32.5419944Z         },
2026-06-19T05:28:32.5420054Z         "impl": {
2026-06-19T05:28:32.5420160Z           "complete": true,
2026-06-19T05:28:32.5420259Z           "evidence": [
2026-06-19T05:28:32.5420364Z             {
2026-06-19T05:28:32.5420507Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.5420616Z               "line": 431
2026-06-19T05:28:32.5420708Z             },
2026-06-19T05:28:32.5420808Z             {
2026-06-19T05:28:32.5420950Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:28:32.5421047Z               "line": 76
2026-06-19T05:28:32.5421155Z             },
2026-06-19T05:28:32.5421256Z             {
2026-06-19T05:28:32.5421395Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:28:32.5421508Z               "line": 222
2026-06-19T05:28:32.5421614Z             },
2026-06-19T05:28:32.5421715Z             {
2026-06-19T05:28:32.5421856Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:28:32.5421975Z               "line": 422
2026-06-19T05:28:32.5422079Z             },
2026-06-19T05:28:32.5422173Z             {
2026-06-19T05:28:32.5422306Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:28:32.5422422Z               "line": 529
2026-06-19T05:28:32.5422530Z             },
2026-06-19T05:28:32.5422635Z             {
2026-06-19T05:28:32.5422778Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-19T05:28:32.5422892Z               "line": 39
2026-06-19T05:28:32.5422994Z             },
2026-06-19T05:28:32.5423098Z             {
2026-06-19T05:28:32.5423246Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.5423355Z               "line": 289
2026-06-19T05:28:32.5423455Z             },
2026-06-19T05:28:32.5423555Z             {
2026-06-19T05:28:32.5423694Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-19T05:28:32.5423799Z               "line": 88
2026-06-19T05:28:32.5423899Z             },
2026-06-19T05:28:32.5423999Z             {
2026-06-19T05:28:32.5424234Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-19T05:28:32.5424342Z               "line": 98
2026-06-19T05:28:32.5424438Z             },
2026-06-19T05:28:32.5424534Z             {
2026-06-19T05:28:32.5424685Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5424784Z               "line": 229
2026-06-19T05:28:32.5424965Z             }
2026-06-19T05:28:32.5425073Z           ]
2026-06-19T05:28:32.5425164Z         },
2026-06-19T05:28:32.5425274Z         "int": {
2026-06-19T05:28:32.5425383Z           "complete": true,
2026-06-19T05:28:32.5425497Z           "evidence": [
2026-06-19T05:28:32.5425599Z             {
2026-06-19T05:28:32.5425750Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.5425856Z               "line": 415
2026-06-19T05:28:32.5425960Z             },
2026-06-19T05:28:32.5426065Z             {
2026-06-19T05:28:32.5426218Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.5426337Z               "line": 518
2026-06-19T05:28:32.5426442Z             },
2026-06-19T05:28:32.5426547Z             {
2026-06-19T05:28:32.5426695Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5426806Z               "line": 997
2026-06-19T05:28:32.5426909Z             },
2026-06-19T05:28:32.5427000Z             {
2026-06-19T05:28:32.5427149Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5427262Z               "line": 1382
2026-06-19T05:28:32.5427370Z             }
2026-06-19T05:28:32.5427475Z           ]
2026-06-19T05:28:32.5427569Z         },
2026-06-19T05:28:32.5427673Z         "unit": {
2026-06-19T05:28:32.5427792Z           "complete": true,
2026-06-19T05:28:32.5427898Z           "evidence": [
2026-06-19T05:28:32.5430467Z             {
2026-06-19T05:28:32.5430662Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:28:32.5430782Z               "line": 639
2026-06-19T05:28:32.5430886Z             },
2026-06-19T05:28:32.5431006Z             {
2026-06-19T05:28:32.5431148Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-19T05:28:32.5431263Z               "line": 660
2026-06-19T05:28:32.5431363Z             },
2026-06-19T05:28:32.5431468Z             {
2026-06-19T05:28:32.5431631Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-19T05:28:32.5431735Z               "line": 765
2026-06-19T05:28:32.5431840Z             },
2026-06-19T05:28:32.5431941Z             {
2026-06-19T05:28:32.5432087Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-19T05:28:32.5432197Z               "line": 93
2026-06-19T05:28:32.5432299Z             },
2026-06-19T05:28:32.5432402Z             {
2026-06-19T05:28:32.5432549Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-19T05:28:32.5432658Z               "line": 224
2026-06-19T05:28:32.5432747Z             },
2026-06-19T05:28:32.5432852Z             {
2026-06-19T05:28:32.5433001Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-19T05:28:32.5433119Z               "line": 96
2026-06-19T05:28:32.5433224Z             },
2026-06-19T05:28:32.5433330Z             {
2026-06-19T05:28:32.5433471Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-19T05:28:32.5433573Z               "line": 146
2026-06-19T05:28:32.5433677Z             },
2026-06-19T05:28:32.5433777Z             {
2026-06-19T05:28:32.5433906Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.5434010Z               "line": 672
2026-06-19T05:28:32.5434115Z             },
2026-06-19T05:28:32.5434226Z             {
2026-06-19T05:28:32.5434359Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-19T05:28:32.5434474Z               "line": 118
2026-06-19T05:28:32.5434573Z             },
2026-06-19T05:28:32.5434678Z             {
2026-06-19T05:28:32.5434803Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-19T05:28:32.5434907Z               "line": 148
2026-06-19T05:28:32.5435017Z             },
2026-06-19T05:28:32.5435245Z             {
2026-06-19T05:28:32.5435402Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5435511Z               "line": 924
2026-06-19T05:28:32.5435614Z             }
2026-06-19T05:28:32.5435719Z           ]
2026-06-19T05:28:32.5435820Z         }
2026-06-19T05:28:32.5435924Z       }
2026-06-19T05:28:32.5436024Z     },
2026-06-19T05:28:32.5436125Z     {
2026-06-19T05:28:32.5436358Z       "id": "REQ-REACH-2",
2026-06-19T05:28:32.5436549Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-19T05:28:32.5436678Z       "requiredStages": [],
2026-06-19T05:28:32.5436783Z       "stages": {
2026-06-19T05:28:32.5436892Z         "doc": {
2026-06-19T05:28:32.5437002Z           "complete": false,
2026-06-19T05:28:32.5437117Z           "evidence": []
2026-06-19T05:28:32.5437221Z         },
2026-06-19T05:28:32.5437322Z         "impl": {
2026-06-19T05:28:32.5437427Z           "complete": false,
2026-06-19T05:28:32.5437531Z           "evidence": []
2026-06-19T05:28:32.5437642Z         },
2026-06-19T05:28:32.5437756Z         "int": {
2026-06-19T05:28:32.5437873Z           "complete": false,
2026-06-19T05:28:32.5437983Z           "evidence": []
2026-06-19T05:28:32.5438087Z         },
2026-06-19T05:28:32.5438195Z         "unit": {
2026-06-19T05:28:32.5438310Z           "complete": false,
2026-06-19T05:28:32.5438415Z           "evidence": []
2026-06-19T05:28:32.5438515Z         }
2026-06-19T05:28:32.5438619Z       }
2026-06-19T05:28:32.5438716Z     },
2026-06-19T05:28:32.5438811Z     {
2026-06-19T05:28:32.5438929Z       "id": "REQ-READY-AGENT-RESUME",
2026-06-19T05:28:32.5442473Z       "title": "An offline ReadyAgent shows in `spt endpoint run`'s picker Resume-from-history and resumes correctly — closing the gap that today only LiveAgents do. ROOT: a harness-hosted ready bind (ReadyAgent::start_homed, ready.rs) writes info.json DIRECTLY and never appends the session ledger (unlike the shared establish_perch:250 live path), so a ready agent — though it has a session_id — produces ZERO ledger rows → the picker's offline+local Resume-from-history (which gates on ledger rows) never offers it. FIX (1): ledger the ready bind (ReadyAgent::start_homed → sessions::append Boot, mirroring establish_perch). FIX (2): `spt endpoint run --resume <session>` honors the adapter MANIFEST's endpoint TYPE — a ReadyAgent manifest (no [session.psyche_init]) resumes as a ready endpoint (poll listener, NO psyche-host); a LiveAgent (with psyche_init) as live. NO new bringup mode + NO picker changes (operator 2026-06-18): `spt endpoint run` is the spt-hosted ENDPOINT bringup for BOTH types, the type IS the adapter-manifest's concern (psyche-host already keys on psyche_init presence) — so (2) likely already holds; VERIFY at code, build only the residual. (v0.12.0)",
2026-06-19T05:28:32.5442657Z       "requiredStages": [
2026-06-19T05:28:32.5442762Z         "doc",
2026-06-19T05:28:32.5442873Z         "impl",
2026-06-19T05:28:32.5442971Z         "unit",
2026-06-19T05:28:32.5443080Z         "int"
2026-06-19T05:28:32.5443191Z       ],
2026-06-19T05:28:32.5443293Z       "stages": {
2026-06-19T05:28:32.5443402Z         "doc": {
2026-06-19T05:28:32.5443518Z           "complete": true,
2026-06-19T05:28:32.5443631Z           "evidence": [
2026-06-19T05:28:32.5443732Z             {
2026-06-19T05:28:32.5443856Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.5443960Z               "line": 369
2026-06-19T05:28:32.5444071Z             }
2026-06-19T05:28:32.5444180Z           ]
2026-06-19T05:28:32.5444279Z         },
2026-06-19T05:28:32.5444390Z         "impl": {
2026-06-19T05:28:32.5444495Z           "complete": true,
2026-06-19T05:28:32.5444608Z           "evidence": [
2026-06-19T05:28:32.5444705Z             {
2026-06-19T05:28:32.5444842Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.5444952Z               "line": 110
2026-06-19T05:28:32.5445058Z             }
2026-06-19T05:28:32.5445162Z           ]
2026-06-19T05:28:32.5445262Z         },
2026-06-19T05:28:32.5445363Z         "int": {
2026-06-19T05:28:32.5445587Z           "complete": true,
2026-06-19T05:28:32.5445688Z           "evidence": [
2026-06-19T05:28:32.5445796Z             {
2026-06-19T05:28:32.5445957Z               "path": "crates/spt/tests/ready_resume_ledger_e2e.rs",
2026-06-19T05:28:32.5446072Z               "line": 26
2026-06-19T05:28:32.5446174Z             }
2026-06-19T05:28:32.5446279Z           ]
2026-06-19T05:28:32.5446475Z         },
2026-06-19T05:28:32.5446579Z         "unit": {
2026-06-19T05:28:32.5446699Z           "complete": true,
2026-06-19T05:28:32.5446808Z           "evidence": [
2026-06-19T05:28:32.5446918Z             {
2026-06-19T05:28:32.5447062Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-19T05:28:32.5447166Z               "line": 318
2026-06-19T05:28:32.5447267Z             }
2026-06-19T05:28:32.5447371Z           ]
2026-06-19T05:28:32.5447476Z         }
2026-06-19T05:28:32.5447577Z       }
2026-06-19T05:28:32.5447682Z     },
2026-06-19T05:28:32.5447776Z     {
2026-06-19T05:28:32.5447901Z       "id": "REQ-REL-1",
2026-06-19T05:28:32.5448316Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-19T05:28:32.5448429Z       "requiredStages": [
2026-06-19T05:28:32.5448533Z         "doc",
2026-06-19T05:28:32.5448638Z         "impl"
2026-06-19T05:28:32.5448741Z       ],
2026-06-19T05:28:32.5448846Z       "stages": {
2026-06-19T05:28:32.5449028Z         "doc": {
2026-06-19T05:28:32.5449136Z           "complete": true,
2026-06-19T05:28:32.5449238Z           "evidence": [
2026-06-19T05:28:32.5449343Z             {
2026-06-19T05:28:32.5449576Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-19T05:28:32.5449685Z               "line": 3
2026-06-19T05:28:32.5449785Z             }
2026-06-19T05:28:32.5449881Z           ]
2026-06-19T05:28:32.5449985Z         },
2026-06-19T05:28:32.5450085Z         "impl": {
2026-06-19T05:28:32.5450201Z           "complete": true,
2026-06-19T05:28:32.5450310Z           "evidence": [
2026-06-19T05:28:32.5450405Z             {
2026-06-19T05:28:32.5450558Z               "path": ".github/workflows/docs-publish.yml",
2026-06-19T05:28:32.5450668Z               "line": 11
2026-06-19T05:28:32.5450764Z             },
2026-06-19T05:28:32.5450869Z             {
2026-06-19T05:28:32.5451006Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5451117Z               "line": 265
2026-06-19T05:28:32.5451226Z             }
2026-06-19T05:28:32.5451324Z           ]
2026-06-19T05:28:32.5451420Z         },
2026-06-19T05:28:32.5451521Z         "int": {
2026-06-19T05:28:32.5451634Z           "complete": false,
2026-06-19T05:28:32.5451744Z           "evidence": []
2026-06-19T05:28:32.5451845Z         },
2026-06-19T05:28:32.5451954Z         "unit": {
2026-06-19T05:28:32.5452059Z           "complete": false,
2026-06-19T05:28:32.5452174Z           "evidence": []
2026-06-19T05:28:32.5452273Z         }
2026-06-19T05:28:32.5452373Z       }
2026-06-19T05:28:32.5452479Z     },
2026-06-19T05:28:32.5452570Z     {
2026-06-19T05:28:32.5452679Z       "id": "REQ-REL-2",
2026-06-19T05:28:32.5453179Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-19T05:28:32.5453299Z       "requiredStages": [
2026-06-19T05:28:32.5453414Z         "impl",
2026-06-19T05:28:32.5453517Z         "int"
2026-06-19T05:28:32.5453617Z       ],
2026-06-19T05:28:32.5453717Z       "stages": {
2026-06-19T05:28:32.5453825Z         "doc": {
2026-06-19T05:28:32.5453929Z           "complete": true,
2026-06-19T05:28:32.5454039Z           "evidence": [
2026-06-19T05:28:32.5454144Z             {
2026-06-19T05:28:32.5454272Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-19T05:28:32.5454383Z               "line": 6
2026-06-19T05:28:32.5454483Z             }
2026-06-19T05:28:32.5454582Z           ]
2026-06-19T05:28:32.5454679Z         },
2026-06-19T05:28:32.5454892Z         "impl": {
2026-06-19T05:28:32.5455003Z           "complete": true,
2026-06-19T05:28:32.5455113Z           "evidence": [
2026-06-19T05:28:32.5455212Z             {
2026-06-19T05:28:32.5455356Z               "path": ".github/workflows/release.yml",
2026-06-19T05:28:32.5455456Z               "line": 16
2026-06-19T05:28:32.5455560Z             },
2026-06-19T05:28:32.5455755Z             {
2026-06-19T05:28:32.5455895Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5456004Z               "line": 352
2026-06-19T05:28:32.5456109Z             },
2026-06-19T05:28:32.5456210Z             {
2026-06-19T05:28:32.5456338Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5456441Z               "line": 426
2026-06-19T05:28:32.5456551Z             },
2026-06-19T05:28:32.5456660Z             {
2026-06-19T05:28:32.5456787Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5456902Z               "line": 588
2026-06-19T05:28:32.5457092Z             },
2026-06-19T05:28:32.5457197Z             {
2026-06-19T05:28:32.5457327Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5457430Z               "line": 720
2026-06-19T05:28:32.5457541Z             }
2026-06-19T05:28:32.5457641Z           ]
2026-06-19T05:28:32.5457745Z         },
2026-06-19T05:28:32.5457846Z         "int": {
2026-06-19T05:28:32.5457974Z           "complete": true,
2026-06-19T05:28:32.5458070Z           "evidence": [
2026-06-19T05:28:32.5458176Z             {
2026-06-19T05:28:32.5458332Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-19T05:28:32.5458427Z               "line": 13
2026-06-19T05:28:32.5458533Z             }
2026-06-19T05:28:32.5458632Z           ]
2026-06-19T05:28:32.5458737Z         },
2026-06-19T05:28:32.5458834Z         "unit": {
2026-06-19T05:28:32.5459036Z           "complete": false,
2026-06-19T05:28:32.5459146Z           "evidence": []
2026-06-19T05:28:32.5459245Z         }
2026-06-19T05:28:32.5459344Z       }
2026-06-19T05:28:32.5459444Z     },
2026-06-19T05:28:32.5459545Z     {
2026-06-19T05:28:32.5459649Z       "id": "REQ-REL-3",
2026-06-19T05:28:32.5460113Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-19T05:28:32.5460231Z       "requiredStages": [
2026-06-19T05:28:32.5460345Z         "impl",
2026-06-19T05:28:32.5460446Z         "unit"
2026-06-19T05:28:32.5460546Z       ],
2026-06-19T05:28:32.5460650Z       "stages": {
2026-06-19T05:28:32.5460752Z         "doc": {
2026-06-19T05:28:32.5460870Z           "complete": false,
2026-06-19T05:28:32.5460989Z           "evidence": []
2026-06-19T05:28:32.5461086Z         },
2026-06-19T05:28:32.5461199Z         "impl": {
2026-06-19T05:28:32.5461294Z           "complete": true,
2026-06-19T05:28:32.5461405Z           "evidence": [
2026-06-19T05:28:32.5461499Z             {
2026-06-19T05:28:32.5461648Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5461762Z               "line": 237
2026-06-19T05:28:32.5461866Z             },
2026-06-19T05:28:32.5461970Z             {
2026-06-19T05:28:32.5462115Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5462218Z               "line": 289
2026-06-19T05:28:32.5462319Z             },
2026-06-19T05:28:32.5462429Z             {
2026-06-19T05:28:32.5462566Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5462677Z               "line": 329
2026-06-19T05:28:32.5462772Z             },
2026-06-19T05:28:32.5462871Z             {
2026-06-19T05:28:32.5463006Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5463110Z               "line": 353
2026-06-19T05:28:32.5463215Z             },
2026-06-19T05:28:32.5463321Z             {
2026-06-19T05:28:32.5463444Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5463554Z               "line": 394
2026-06-19T05:28:32.5463659Z             }
2026-06-19T05:28:32.5463864Z           ]
2026-06-19T05:28:32.5463965Z         },
2026-06-19T05:28:32.5464068Z         "int": {
2026-06-19T05:28:32.5464177Z           "complete": false,
2026-06-19T05:28:32.5464287Z           "evidence": []
2026-06-19T05:28:32.5464390Z         },
2026-06-19T05:28:32.5464494Z         "unit": {
2026-06-19T05:28:32.5464604Z           "complete": true,
2026-06-19T05:28:32.5464804Z           "evidence": [
2026-06-19T05:28:32.5464909Z             {
2026-06-19T05:28:32.5465057Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5465166Z               "line": 1045
2026-06-19T05:28:32.5465268Z             },
2026-06-19T05:28:32.5465367Z             {
2026-06-19T05:28:32.5465506Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5465620Z               "line": 1104
2026-06-19T05:28:32.5465724Z             }
2026-06-19T05:28:32.5465825Z           ]
2026-06-19T05:28:32.5465925Z         }
2026-06-19T05:28:32.5466030Z       }
2026-06-19T05:28:32.5466135Z     },
2026-06-19T05:28:32.5466240Z     {
2026-06-19T05:28:32.5466359Z       "id": "REQ-RUN-PICKER",
2026-06-19T05:28:32.5471172Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-19T05:28:32.5471373Z       "requiredStages": [
2026-06-19T05:28:32.5471478Z         "doc",
2026-06-19T05:28:32.5471583Z         "impl",
2026-06-19T05:28:32.5471683Z         "unit"
2026-06-19T05:28:32.5471788Z       ],
2026-06-19T05:28:32.5471894Z       "stages": {
2026-06-19T05:28:32.5472017Z         "doc": {
2026-06-19T05:28:32.5472126Z           "complete": true,
2026-06-19T05:28:32.5472232Z           "evidence": [
2026-06-19T05:28:32.5472336Z             {
2026-06-19T05:28:32.5472464Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.5472574Z               "line": 346
2026-06-19T05:28:32.5472679Z             }
2026-06-19T05:28:32.5472778Z           ]
2026-06-19T05:28:32.5472903Z         },
2026-06-19T05:28:32.5473008Z         "impl": {
2026-06-19T05:28:32.5473117Z           "complete": true,
2026-06-19T05:28:32.5473223Z           "evidence": [
2026-06-19T05:28:32.5473323Z             {
2026-06-19T05:28:32.5473455Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5473566Z               "line": 951
2026-06-19T05:28:32.5473670Z             },
2026-06-19T05:28:32.5473770Z             {
2026-06-19T05:28:32.5473895Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5473999Z               "line": 961
2026-06-19T05:28:32.5474094Z             },
2026-06-19T05:28:32.5474299Z             {
2026-06-19T05:28:32.5474453Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:28:32.5474558Z               "line": 9
2026-06-19T05:28:32.5474652Z             },
2026-06-19T05:28:32.5474756Z             {
2026-06-19T05:28:32.5474894Z               "path": "crates/spt/src/picker/data.rs",
2026-06-19T05:28:32.5475002Z               "line": 67
2026-06-19T05:28:32.5475222Z             },
2026-06-19T05:28:32.5475326Z             {
2026-06-19T05:28:32.5475470Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-19T05:28:32.5475579Z               "line": 16
2026-06-19T05:28:32.5475683Z             },
2026-06-19T05:28:32.5475785Z             {
2026-06-19T05:28:32.5475927Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-19T05:28:32.5476042Z               "line": 249
2026-06-19T05:28:32.5476142Z             },
2026-06-19T05:28:32.5476247Z             {
2026-06-19T05:28:32.5476390Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5476509Z               "line": 11
2026-06-19T05:28:32.5476618Z             },
2026-06-19T05:28:32.5476720Z             {
2026-06-19T05:28:32.5476861Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5476976Z               "line": 115
2026-06-19T05:28:32.5477087Z             },
2026-06-19T05:28:32.5477186Z             {
2026-06-19T05:28:32.5477335Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5477454Z               "line": 519
2026-06-19T05:28:32.5477557Z             },
2026-06-19T05:28:32.5477662Z             {
2026-06-19T05:28:32.5477808Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5477921Z               "line": 600
2026-06-19T05:28:32.5478022Z             },
2026-06-19T05:28:32.5478128Z             {
2026-06-19T05:28:32.5478269Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5478380Z               "line": 659
2026-06-19T05:28:32.5478489Z             },
2026-06-19T05:28:32.5478589Z             {
2026-06-19T05:28:32.5478737Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:28:32.5478841Z               "line": 8
2026-06-19T05:28:32.5479024Z             }
2026-06-19T05:28:32.5479129Z           ]
2026-06-19T05:28:32.5479224Z         },
2026-06-19T05:28:32.5479325Z         "int": {
2026-06-19T05:28:32.5479447Z           "complete": false,
2026-06-19T05:28:32.5479567Z           "evidence": []
2026-06-19T05:28:32.5479668Z         },
2026-06-19T05:28:32.5479776Z         "unit": {
2026-06-19T05:28:32.5479892Z           "complete": true,
2026-06-19T05:28:32.5479997Z           "evidence": [
2026-06-19T05:28:32.5480104Z             {
2026-06-19T05:28:32.5480233Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5480347Z               "line": 7495
2026-06-19T05:28:32.5480445Z             },
2026-06-19T05:28:32.5480551Z             {
2026-06-19T05:28:32.5480680Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5480788Z               "line": 7506
2026-06-19T05:28:32.5480899Z             },
2026-06-19T05:28:32.5480999Z             {
2026-06-19T05:28:32.5481141Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5481252Z               "line": 812
2026-06-19T05:28:32.5481357Z             },
2026-06-19T05:28:32.5481461Z             {
2026-06-19T05:28:32.5481600Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5481713Z               "line": 861
2026-06-19T05:28:32.5481814Z             },
2026-06-19T05:28:32.5481919Z             {
2026-06-19T05:28:32.5482062Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5482173Z               "line": 878
2026-06-19T05:28:32.5482271Z             },
2026-06-19T05:28:32.5482371Z             {
2026-06-19T05:28:32.5482521Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5482624Z               "line": 898
2026-06-19T05:28:32.5482725Z             },
2026-06-19T05:28:32.5482821Z             {
2026-06-19T05:28:32.5482967Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5483192Z               "line": 912
2026-06-19T05:28:32.5483296Z             },
2026-06-19T05:28:32.5483400Z             {
2026-06-19T05:28:32.5483530Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5483639Z               "line": 921
2026-06-19T05:28:32.5483749Z             },
2026-06-19T05:28:32.5483939Z             {
2026-06-19T05:28:32.5484088Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5484197Z               "line": 932
2026-06-19T05:28:32.5484302Z             },
2026-06-19T05:28:32.5484403Z             {
2026-06-19T05:28:32.5484545Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5484664Z               "line": 954
2026-06-19T05:28:32.5484765Z             },
2026-06-19T05:28:32.5484859Z             {
2026-06-19T05:28:32.5484993Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5485108Z               "line": 973
2026-06-19T05:28:32.5485212Z             },
2026-06-19T05:28:32.5485316Z             {
2026-06-19T05:28:32.5485463Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5485571Z               "line": 1022
2026-06-19T05:28:32.5485681Z             },
2026-06-19T05:28:32.5485782Z             {
2026-06-19T05:28:32.5485924Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5486035Z               "line": 1051
2026-06-19T05:28:32.5486139Z             },
2026-06-19T05:28:32.5486238Z             {
2026-06-19T05:28:32.5486378Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5486487Z               "line": 1064
2026-06-19T05:28:32.5486582Z             },
2026-06-19T05:28:32.5486688Z             {
2026-06-19T05:28:32.5486826Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5486945Z               "line": 1108
2026-06-19T05:28:32.5487050Z             },
2026-06-19T05:28:32.5487145Z             {
2026-06-19T05:28:32.5487290Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5487408Z               "line": 1135
2026-06-19T05:28:32.5487503Z             },
2026-06-19T05:28:32.5487604Z             {
2026-06-19T05:28:32.5487746Z               "path": "crates/spt/src/picker/model.rs",
2026-06-19T05:28:32.5487861Z               "line": 1151
2026-06-19T05:28:32.5487957Z             },
2026-06-19T05:28:32.5488056Z             {
2026-06-19T05:28:32.5488183Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:28:32.5488298Z               "line": 483
2026-06-19T05:28:32.5488391Z             },
2026-06-19T05:28:32.5488496Z             {
2026-06-19T05:28:32.5488640Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:28:32.5488740Z               "line": 495
2026-06-19T05:28:32.5488844Z             },
2026-06-19T05:28:32.5489026Z             {
2026-06-19T05:28:32.5489159Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:28:32.5489269Z               "line": 513
2026-06-19T05:28:32.5489374Z             },
2026-06-19T05:28:32.5489474Z             {
2026-06-19T05:28:32.5489612Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:28:32.5489721Z               "line": 535
2026-06-19T05:28:32.5489822Z             },
2026-06-19T05:28:32.5489927Z             {
2026-06-19T05:28:32.5490055Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:28:32.5490171Z               "line": 545
2026-06-19T05:28:32.5490275Z             },
2026-06-19T05:28:32.5490375Z             {
2026-06-19T05:28:32.5490514Z               "path": "crates/spt/src/picker/view.rs",
2026-06-19T05:28:32.5490613Z               "line": 570
2026-06-19T05:28:32.5490712Z             }
2026-06-19T05:28:32.5490817Z           ]
2026-06-19T05:28:32.5490916Z         }
2026-06-19T05:28:32.5491019Z       }
2026-06-19T05:28:32.5491111Z     },
2026-06-19T05:28:32.5491216Z     {
2026-06-19T05:28:32.5491324Z       "id": "REQ-RUN-SHORTCUT",
2026-06-19T05:28:32.5495981Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-19T05:28:32.5496352Z       "requiredStages": [
2026-06-19T05:28:32.5496456Z         "doc",
2026-06-19T05:28:32.5496561Z         "impl",
2026-06-19T05:28:32.5496671Z         "unit"
2026-06-19T05:28:32.5496775Z       ],
2026-06-19T05:28:32.5496881Z       "stages": {
2026-06-19T05:28:32.5496976Z         "doc": {
2026-06-19T05:28:32.5497095Z           "complete": true,
2026-06-19T05:28:32.5497211Z           "evidence": [
2026-06-19T05:28:32.5497320Z             {
2026-06-19T05:28:32.5497443Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.5497549Z               "line": 387
2026-06-19T05:28:32.5497653Z             }
2026-06-19T05:28:32.5497762Z           ]
2026-06-19T05:28:32.5497864Z         },
2026-06-19T05:28:32.5497963Z         "impl": {
2026-06-19T05:28:32.5498082Z           "complete": true,
2026-06-19T05:28:32.5498202Z           "evidence": [
2026-06-19T05:28:32.5498301Z             {
2026-06-19T05:28:32.5498455Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:28:32.5498569Z               "line": 39
2026-06-19T05:28:32.5498672Z             },
2026-06-19T05:28:32.5498777Z             {
2026-06-19T05:28:32.5498923Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:28:32.5499123Z               "line": 79
2026-06-19T05:28:32.5499228Z             },
2026-06-19T05:28:32.5499332Z             {
2026-06-19T05:28:32.5499481Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:28:32.5499591Z               "line": 162
2026-06-19T05:28:32.5499694Z             }
2026-06-19T05:28:32.5499791Z           ]
2026-06-19T05:28:32.5499896Z         },
2026-06-19T05:28:32.5499995Z         "int": {
2026-06-19T05:28:32.5500115Z           "complete": false,
2026-06-19T05:28:32.5500229Z           "evidence": []
2026-06-19T05:28:32.5500329Z         },
2026-06-19T05:28:32.5500440Z         "unit": {
2026-06-19T05:28:32.5500544Z           "complete": true,
2026-06-19T05:28:32.5500658Z           "evidence": [
2026-06-19T05:28:32.5500759Z             {
2026-06-19T05:28:32.5500906Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:28:32.5501017Z               "line": 206
2026-06-19T05:28:32.5501117Z             },
2026-06-19T05:28:32.5501225Z             {
2026-06-19T05:28:32.5501363Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:28:32.5501481Z               "line": 222
2026-06-19T05:28:32.5501584Z             },
2026-06-19T05:28:32.5501801Z             {
2026-06-19T05:28:32.5501952Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:28:32.5502053Z               "line": 238
2026-06-19T05:28:32.5502162Z             },
2026-06-19T05:28:32.5502262Z             {
2026-06-19T05:28:32.5502415Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:28:32.5502524Z               "line": 251
2026-06-19T05:28:32.5502720Z             },
2026-06-19T05:28:32.5502825Z             {
2026-06-19T05:28:32.5502968Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-19T05:28:32.5503077Z               "line": 258
2026-06-19T05:28:32.5503177Z             }
2026-06-19T05:28:32.5503269Z           ]
2026-06-19T05:28:32.5503378Z         }
2026-06-19T05:28:32.5503478Z       }
2026-06-19T05:28:32.5503579Z     },
2026-06-19T05:28:32.5503679Z     {
2026-06-19T05:28:32.5503807Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-19T05:28:32.5504013Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-19T05:28:32.5504130Z       "requiredStages": [
2026-06-19T05:28:32.5504230Z         "impl",
2026-06-19T05:28:32.5504336Z         "unit"
2026-06-19T05:28:32.5504435Z       ],
2026-06-19T05:28:32.5504530Z       "stages": {
2026-06-19T05:28:32.5504631Z         "doc": {
2026-06-19T05:28:32.5504745Z           "complete": false,
2026-06-19T05:28:32.5504860Z           "evidence": []
2026-06-19T05:28:32.5504969Z         },
2026-06-19T05:28:32.5505074Z         "impl": {
2026-06-19T05:28:32.5505184Z           "complete": true,
2026-06-19T05:28:32.5505289Z           "evidence": [
2026-06-19T05:28:32.5505393Z             {
2026-06-19T05:28:32.5505523Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5505627Z               "line": 18
2026-06-19T05:28:32.5505737Z             },
2026-06-19T05:28:32.5505838Z             {
2026-06-19T05:28:32.5505979Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5506090Z               "line": 35
2026-06-19T05:28:32.5506191Z             },
2026-06-19T05:28:32.5506294Z             {
2026-06-19T05:28:32.5506441Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5506556Z               "line": 72
2026-06-19T05:28:32.5506654Z             }
2026-06-19T05:28:32.5506763Z           ]
2026-06-19T05:28:32.5506864Z         },
2026-06-19T05:28:32.5506964Z         "int": {
2026-06-19T05:28:32.5507083Z           "complete": false,
2026-06-19T05:28:32.5507188Z           "evidence": []
2026-06-19T05:28:32.5507297Z         },
2026-06-19T05:28:32.5507402Z         "unit": {
2026-06-19T05:28:32.5507522Z           "complete": true,
2026-06-19T05:28:32.5507631Z           "evidence": [
2026-06-19T05:28:32.5507737Z             {
2026-06-19T05:28:32.5507870Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5507984Z               "line": 239
2026-06-19T05:28:32.5508090Z             },
2026-06-19T05:28:32.5508189Z             {
2026-06-19T05:28:32.5508332Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5508452Z               "line": 256
2026-06-19T05:28:32.5508546Z             },
2026-06-19T05:28:32.5508637Z             {
2026-06-19T05:28:32.5508781Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5508885Z               "line": 265
2026-06-19T05:28:32.5509068Z             }
2026-06-19T05:28:32.5509176Z           ]
2026-06-19T05:28:32.5509270Z         }
2026-06-19T05:28:32.5509376Z       }
2026-06-19T05:28:32.5509474Z     },
2026-06-19T05:28:32.5509578Z     {
2026-06-19T05:28:32.5509712Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-19T05:28:32.5509883Z       "title": "Hostable endpoint-types capability declaration",
2026-06-19T05:28:32.5510003Z       "requiredStages": [
2026-06-19T05:28:32.5510103Z         "impl",
2026-06-19T05:28:32.5510212Z         "unit"
2026-06-19T05:28:32.5510313Z       ],
2026-06-19T05:28:32.5510418Z       "stages": {
2026-06-19T05:28:32.5510532Z         "doc": {
2026-06-19T05:28:32.5510642Z           "complete": false,
2026-06-19T05:28:32.5510889Z           "evidence": []
2026-06-19T05:28:32.5510991Z         },
2026-06-19T05:28:32.5511095Z         "impl": {
2026-06-19T05:28:32.5511209Z           "complete": true,
2026-06-19T05:28:32.5511324Z           "evidence": [
2026-06-19T05:28:32.5511433Z             {
2026-06-19T05:28:32.5511577Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5511785Z               "line": 594
2026-06-19T05:28:32.5511885Z             }
2026-06-19T05:28:32.5511975Z           ]
2026-06-19T05:28:32.5512074Z         },
2026-06-19T05:28:32.5512173Z         "int": {
2026-06-19T05:28:32.5512288Z           "complete": false,
2026-06-19T05:28:32.5512398Z           "evidence": []
2026-06-19T05:28:32.5512502Z         },
2026-06-19T05:28:32.5512603Z         "unit": {
2026-06-19T05:28:32.5512727Z           "complete": true,
2026-06-19T05:28:32.5512831Z           "evidence": [
2026-06-19T05:28:32.5512937Z             {
2026-06-19T05:28:32.5513089Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5513205Z               "line": 963
2026-06-19T05:28:32.5513304Z             }
2026-06-19T05:28:32.5513404Z           ]
2026-06-19T05:28:32.5513499Z         }
2026-06-19T05:28:32.5513600Z       }
2026-06-19T05:28:32.5513700Z     },
2026-06-19T05:28:32.5513809Z     {
2026-06-19T05:28:32.5513929Z       "id": "REQ-SEAM-HISTORY",
2026-06-19T05:28:32.5514144Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-19T05:28:32.5514262Z       "requiredStages": [
2026-06-19T05:28:32.5514363Z         "impl",
2026-06-19T05:28:32.5514464Z         "unit",
2026-06-19T05:28:32.5514568Z         "int"
2026-06-19T05:28:32.5514676Z       ],
2026-06-19T05:28:32.5514781Z       "stages": {
2026-06-19T05:28:32.5514886Z         "doc": {
2026-06-19T05:28:32.5515004Z           "complete": false,
2026-06-19T05:28:32.5515110Z           "evidence": []
2026-06-19T05:28:32.5515210Z         },
2026-06-19T05:28:32.5515314Z         "impl": {
2026-06-19T05:28:32.5515435Z           "complete": true,
2026-06-19T05:28:32.5515544Z           "evidence": [
2026-06-19T05:28:32.5515639Z             {
2026-06-19T05:28:32.5515768Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:28:32.5515882Z               "line": 24
2026-06-19T05:28:32.5515977Z             },
2026-06-19T05:28:32.5516083Z             {
2026-06-19T05:28:32.5516230Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:28:32.5516345Z               "line": 22
2026-06-19T05:28:32.5516446Z             }
2026-06-19T05:28:32.5516544Z           ]
2026-06-19T05:28:32.5516655Z         },
2026-06-19T05:28:32.5516761Z         "int": {
2026-06-19T05:28:32.5516873Z           "complete": true,
2026-06-19T05:28:32.5516991Z           "evidence": [
2026-06-19T05:28:32.5517083Z             {
2026-06-19T05:28:32.5517238Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:28:32.5517352Z               "line": 260
2026-06-19T05:28:32.5517448Z             }
2026-06-19T05:28:32.5517548Z           ]
2026-06-19T05:28:32.5517648Z         },
2026-06-19T05:28:32.5517748Z         "unit": {
2026-06-19T05:28:32.5517857Z           "complete": true,
2026-06-19T05:28:32.5517972Z           "evidence": [
2026-06-19T05:28:32.5518073Z             {
2026-06-19T05:28:32.5518210Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:28:32.5518321Z               "line": 171
2026-06-19T05:28:32.5518430Z             },
2026-06-19T05:28:32.5518534Z             {
2026-06-19T05:28:32.5518669Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:28:32.5518783Z               "line": 200
2026-06-19T05:28:32.5518878Z             },
2026-06-19T05:28:32.5519073Z             {
2026-06-19T05:28:32.5521383Z               "path": "crates/spt-live/src/echo.rs",
2026-06-19T05:28:32.5521517Z               "line": 220
2026-06-19T05:28:32.5521621Z             },
2026-06-19T05:28:32.5521721Z             {
2026-06-19T05:28:32.5521875Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:28:32.5521988Z               "line": 199
2026-06-19T05:28:32.5522232Z             },
2026-06-19T05:28:32.5522331Z             {
2026-06-19T05:28:32.5522483Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:28:32.5522606Z               "line": 219
2026-06-19T05:28:32.5522704Z             },
2026-06-19T05:28:32.5522810Z             {
2026-06-19T05:28:32.5522953Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:28:32.5523163Z               "line": 244
2026-06-19T05:28:32.5523273Z             },
2026-06-19T05:28:32.5523372Z             {
2026-06-19T05:28:32.5523521Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:28:32.5523625Z               "line": 276
2026-06-19T05:28:32.5523730Z             },
2026-06-19T05:28:32.5523831Z             {
2026-06-19T05:28:32.5523973Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:28:32.5524089Z               "line": 297
2026-06-19T05:28:32.5524184Z             },
2026-06-19T05:28:32.5524293Z             {
2026-06-19T05:28:32.5524432Z               "path": "crates/spt-live/src/history.rs",
2026-06-19T05:28:32.5524541Z               "line": 324
2026-06-19T05:28:32.5524645Z             }
2026-06-19T05:28:32.5524747Z           ]
2026-06-19T05:28:32.5524850Z         }
2026-06-19T05:28:32.5524951Z       }
2026-06-19T05:28:32.5525053Z     },
2026-06-19T05:28:32.5525142Z     {
2026-06-19T05:28:32.5525274Z       "id": "REQ-SEAM-INJECT",
2026-06-19T05:28:32.5525471Z       "title": "inject-input methods configurable per activity-state",
2026-06-19T05:28:32.5525588Z       "requiredStages": [
2026-06-19T05:28:32.5525690Z         "impl",
2026-06-19T05:28:32.5525794Z         "unit"
2026-06-19T05:28:32.5525903Z       ],
2026-06-19T05:28:32.5526023Z       "stages": {
2026-06-19T05:28:32.5526162Z         "doc": {
2026-06-19T05:28:32.5526266Z           "complete": false,
2026-06-19T05:28:32.5526376Z           "evidence": []
2026-06-19T05:28:32.5526486Z         },
2026-06-19T05:28:32.5526590Z         "impl": {
2026-06-19T05:28:32.5526715Z           "complete": true,
2026-06-19T05:28:32.5526810Z           "evidence": [
2026-06-19T05:28:32.5526915Z             {
2026-06-19T05:28:32.5527058Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5527162Z               "line": 19
2026-06-19T05:28:32.5527273Z             },
2026-06-19T05:28:32.5527373Z             {
2026-06-19T05:28:32.5527514Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5527619Z               "line": 111
2026-06-19T05:28:32.5527723Z             }
2026-06-19T05:28:32.5527827Z           ]
2026-06-19T05:28:32.5527927Z         },
2026-06-19T05:28:32.5528033Z         "int": {
2026-06-19T05:28:32.5528155Z           "complete": false,
2026-06-19T05:28:32.5528256Z           "evidence": []
2026-06-19T05:28:32.5528356Z         },
2026-06-19T05:28:32.5528455Z         "unit": {
2026-06-19T05:28:32.5528576Z           "complete": true,
2026-06-19T05:28:32.5528680Z           "evidence": [
2026-06-19T05:28:32.5528784Z             {
2026-06-19T05:28:32.5528929Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5529138Z               "line": 345
2026-06-19T05:28:32.5529244Z             },
2026-06-19T05:28:32.5529348Z             {
2026-06-19T05:28:32.5529486Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5529601Z               "line": 365
2026-06-19T05:28:32.5529701Z             }
2026-06-19T05:28:32.5529791Z           ]
2026-06-19T05:28:32.5529897Z         }
2026-06-19T05:28:32.5530000Z       }
2026-06-19T05:28:32.5530121Z     },
2026-06-19T05:28:32.5530212Z     {
2026-06-19T05:28:32.5530343Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-19T05:28:32.5530505Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-19T05:28:32.5530609Z       "requiredStages": [
2026-06-19T05:28:32.5530717Z         "impl",
2026-06-19T05:28:32.5530823Z         "unit"
2026-06-19T05:28:32.5530923Z       ],
2026-06-19T05:28:32.5531032Z       "stages": {
2026-06-19T05:28:32.5531138Z         "doc": {
2026-06-19T05:28:32.5531351Z           "complete": false,
2026-06-19T05:28:32.5531462Z           "evidence": []
2026-06-19T05:28:32.5531567Z         },
2026-06-19T05:28:32.5531671Z         "impl": {
2026-06-19T05:28:32.5531791Z           "complete": true,
2026-06-19T05:28:32.5531890Z           "evidence": [
2026-06-19T05:28:32.5531995Z             {
2026-06-19T05:28:32.5532139Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5532343Z               "line": 18
2026-06-19T05:28:32.5532450Z             },
2026-06-19T05:28:32.5532553Z             {
2026-06-19T05:28:32.5532683Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5532788Z               "line": 407
2026-06-19T05:28:32.5532891Z             }
2026-06-19T05:28:32.5533000Z           ]
2026-06-19T05:28:32.5533100Z         },
2026-06-19T05:28:32.5533203Z         "int": {
2026-06-19T05:28:32.5533312Z           "complete": false,
2026-06-19T05:28:32.5533418Z           "evidence": []
2026-06-19T05:28:32.5533518Z         },
2026-06-19T05:28:32.5533627Z         "unit": {
2026-06-19T05:28:32.5533738Z           "complete": true,
2026-06-19T05:28:32.5533847Z           "evidence": [
2026-06-19T05:28:32.5533947Z             {
2026-06-19T05:28:32.5534076Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5534185Z               "line": 764
2026-06-19T05:28:32.5534286Z             },
2026-06-19T05:28:32.5534395Z             {
2026-06-19T05:28:32.5534519Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5534620Z               "line": 774
2026-06-19T05:28:32.5534715Z             }
2026-06-19T05:28:32.5534810Z           ]
2026-06-19T05:28:32.5534915Z         }
2026-06-19T05:28:32.5535016Z       }
2026-06-19T05:28:32.5535149Z     },
2026-06-19T05:28:32.5535274Z     {
2026-06-19T05:28:32.5535396Z       "id": "REQ-SEAM-PSYCHE",
2026-06-19T05:28:32.5535565Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-19T05:28:32.5535669Z       "requiredStages": [
2026-06-19T05:28:32.5535773Z         "impl",
2026-06-19T05:28:32.5535872Z         "unit",
2026-06-19T05:28:32.5535983Z         "int"
2026-06-19T05:28:32.5536082Z       ],
2026-06-19T05:28:32.5536192Z       "stages": {
2026-06-19T05:28:32.5536298Z         "doc": {
2026-06-19T05:28:32.5536416Z           "complete": false,
2026-06-19T05:28:32.5536535Z           "evidence": []
2026-06-19T05:28:32.5536636Z         },
2026-06-19T05:28:32.5536745Z         "impl": {
2026-06-19T05:28:32.5536859Z           "complete": true,
2026-06-19T05:28:32.5536960Z           "evidence": [
2026-06-19T05:28:32.5537069Z             {
2026-06-19T05:28:32.5537213Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:28:32.5537317Z               "line": 19
2026-06-19T05:28:32.5537408Z             },
2026-06-19T05:28:32.5537519Z             {
2026-06-19T05:28:32.5537646Z               "path": "crates/spt/src/api/live.rs",
2026-06-19T05:28:32.5537760Z               "line": 12
2026-06-19T05:28:32.5537862Z             },
2026-06-19T05:28:32.5537970Z             {
2026-06-19T05:28:32.5538112Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5538222Z               "line": 277
2026-06-19T05:28:32.5538320Z             }
2026-06-19T05:28:32.5538429Z           ]
2026-06-19T05:28:32.5538520Z         },
2026-06-19T05:28:32.5538621Z         "int": {
2026-06-19T05:28:32.5538734Z           "complete": true,
2026-06-19T05:28:32.5538845Z           "evidence": [
2026-06-19T05:28:32.5539025Z             {
2026-06-19T05:28:32.5539179Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:28:32.5539283Z               "line": 259
2026-06-19T05:28:32.5539388Z             }
2026-06-19T05:28:32.5539494Z           ]
2026-06-19T05:28:32.5539594Z         },
2026-06-19T05:28:32.5539698Z         "unit": {
2026-06-19T05:28:32.5539804Z           "complete": true,
2026-06-19T05:28:32.5539913Z           "evidence": [
2026-06-19T05:28:32.5540022Z             {
2026-06-19T05:28:32.5540152Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:28:32.5540366Z               "line": 195
2026-06-19T05:28:32.5540467Z             },
2026-06-19T05:28:32.5540565Z             {
2026-06-19T05:28:32.5540710Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:28:32.5540833Z               "line": 202
2026-06-19T05:28:32.5540937Z             },
2026-06-19T05:28:32.5541042Z             {
2026-06-19T05:28:32.5541277Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-19T05:28:32.5541392Z               "line": 225
2026-06-19T05:28:32.5541489Z             },
2026-06-19T05:28:32.5541587Z             {
2026-06-19T05:28:32.5541732Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-19T05:28:32.5541836Z               "line": 106
2026-06-19T05:28:32.5541940Z             },
2026-06-19T05:28:32.5542042Z             {
2026-06-19T05:28:32.5542174Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-19T05:28:32.5542284Z               "line": 137
2026-06-19T05:28:32.5542385Z             },
2026-06-19T05:28:32.5542494Z             {
2026-06-19T05:28:32.5542628Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-19T05:28:32.5542728Z               "line": 161
2026-06-19T05:28:32.5542832Z             }
2026-06-19T05:28:32.5542933Z           ]
2026-06-19T05:28:32.5543029Z         }
2026-06-19T05:28:32.5543127Z       }
2026-06-19T05:28:32.5543228Z     },
2026-06-19T05:28:32.5543334Z     {
2026-06-19T05:28:32.5543447Z       "id": "REQ-SEAM-RESUME",
2026-06-19T05:28:32.5543661Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-19T05:28:32.5543778Z       "requiredStages": [
2026-06-19T05:28:32.5543877Z         "impl",
2026-06-19T05:28:32.5543983Z         "unit"
2026-06-19T05:28:32.5544087Z       ],
2026-06-19T05:28:32.5544192Z       "stages": {
2026-06-19T05:28:32.5544284Z         "doc": {
2026-06-19T05:28:32.5544402Z           "complete": false,
2026-06-19T05:28:32.5544511Z           "evidence": []
2026-06-19T05:28:32.5544617Z         },
2026-06-19T05:28:32.5544722Z         "impl": {
2026-06-19T05:28:32.5544841Z           "complete": true,
2026-06-19T05:28:32.5544955Z           "evidence": [
2026-06-19T05:28:32.5545060Z             {
2026-06-19T05:28:32.5545199Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:28:32.5545299Z               "line": 19
2026-06-19T05:28:32.5545399Z             }
2026-06-19T05:28:32.5545500Z           ]
2026-06-19T05:28:32.5545604Z         },
2026-06-19T05:28:32.5545704Z         "int": {
2026-06-19T05:28:32.5545815Z           "complete": false,
2026-06-19T05:28:32.5545928Z           "evidence": []
2026-06-19T05:28:32.5546028Z         },
2026-06-19T05:28:32.5546144Z         "unit": {
2026-06-19T05:28:32.5546253Z           "complete": true,
2026-06-19T05:28:32.5546361Z           "evidence": [
2026-06-19T05:28:32.5546461Z             {
2026-06-19T05:28:32.5546596Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:28:32.5546709Z               "line": 201
2026-06-19T05:28:32.5546814Z             },
2026-06-19T05:28:32.5546919Z             {
2026-06-19T05:28:32.5547052Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:28:32.5547167Z               "line": 223
2026-06-19T05:28:32.5547272Z             },
2026-06-19T05:28:32.5547371Z             {
2026-06-19T05:28:32.5547525Z               "path": "crates/spt-live/src/resume.rs",
2026-06-19T05:28:32.5547634Z               "line": 244
2026-06-19T05:28:32.5547744Z             }
2026-06-19T05:28:32.5547830Z           ]
2026-06-19T05:28:32.5547940Z         }
2026-06-19T05:28:32.5548045Z       }
2026-06-19T05:28:32.5548145Z     },
2026-06-19T05:28:32.5548249Z     {
2026-06-19T05:28:32.5548369Z       "id": "REQ-SEAM-SPAWN",
2026-06-19T05:28:32.5548493Z       "title": "spawn-session seam",
2026-06-19T05:28:32.5548596Z       "requiredStages": [
2026-06-19T05:28:32.5548696Z         "impl",
2026-06-19T05:28:32.5548796Z         "unit"
2026-06-19T05:28:32.5548895Z       ],
2026-06-19T05:28:32.5549071Z       "stages": {
2026-06-19T05:28:32.5549172Z         "doc": {
2026-06-19T05:28:32.5549410Z           "complete": false,
2026-06-19T05:28:32.5549519Z           "evidence": []
2026-06-19T05:28:32.5549623Z         },
2026-06-19T05:28:32.5549734Z         "impl": {
2026-06-19T05:28:32.5549843Z           "complete": true,
2026-06-19T05:28:32.5549953Z           "evidence": [
2026-06-19T05:28:32.5550044Z             {
2026-06-19T05:28:32.5550196Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.5550392Z               "line": 20
2026-06-19T05:28:32.5550497Z             }
2026-06-19T05:28:32.5550597Z           ]
2026-06-19T05:28:32.5550693Z         },
2026-06-19T05:28:32.5550801Z         "int": {
2026-06-19T05:28:32.5550912Z           "complete": false,
2026-06-19T05:28:32.5551027Z           "evidence": []
2026-06-19T05:28:32.5551130Z         },
2026-06-19T05:28:32.5551236Z         "unit": {
2026-06-19T05:28:32.5551351Z           "complete": true,
2026-06-19T05:28:32.5551454Z           "evidence": [
2026-06-19T05:28:32.5551563Z             {
2026-06-19T05:28:32.5551710Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.5551818Z               "line": 608
2026-06-19T05:28:32.5551914Z             },
2026-06-19T05:28:32.5552019Z             {
2026-06-19T05:28:32.5552166Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.5552273Z               "line": 615
2026-06-19T05:28:32.5552382Z             },
2026-06-19T05:28:32.5552481Z             {
2026-06-19T05:28:32.5552630Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.5552739Z               "line": 721
2026-06-19T05:28:32.5552829Z             },
2026-06-19T05:28:32.5552926Z             {
2026-06-19T05:28:32.5553059Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.5553168Z               "line": 727
2026-06-19T05:28:32.5553260Z             },
2026-06-19T05:28:32.5553368Z             {
2026-06-19T05:28:32.5553508Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.5553621Z               "line": 752
2026-06-19T05:28:32.5553726Z             },
2026-06-19T05:28:32.5553828Z             {
2026-06-19T05:28:32.5553973Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-19T05:28:32.5554078Z               "line": 789
2026-06-19T05:28:32.5554178Z             }
2026-06-19T05:28:32.5554282Z           ]
2026-06-19T05:28:32.5554385Z         }
2026-06-19T05:28:32.5554490Z       }
2026-06-19T05:28:32.5554592Z     },
2026-06-19T05:28:32.5554690Z     {
2026-06-19T05:28:32.5554810Z       "id": "REQ-SEAM-UPDATE",
2026-06-19T05:28:32.5555005Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-19T05:28:32.5555106Z       "requiredStages": [
2026-06-19T05:28:32.5555215Z         "impl",
2026-06-19T05:28:32.5555315Z         "unit"
2026-06-19T05:28:32.5555406Z       ],
2026-06-19T05:28:32.5555502Z       "stages": {
2026-06-19T05:28:32.5555602Z         "doc": {
2026-06-19T05:28:32.5555715Z           "complete": false,
2026-06-19T05:28:32.5555822Z           "evidence": []
2026-06-19T05:28:32.5555930Z         },
2026-06-19T05:28:32.5556040Z         "impl": {
2026-06-19T05:28:32.5556155Z           "complete": true,
2026-06-19T05:28:32.5556264Z           "evidence": [
2026-06-19T05:28:32.5556360Z             {
2026-06-19T05:28:32.5556516Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5556622Z               "line": 28
2026-06-19T05:28:32.5556733Z             },
2026-06-19T05:28:32.5556831Z             {
2026-06-19T05:28:32.5557084Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5557198Z               "line": 88
2026-06-19T05:28:32.5557297Z             }
2026-06-19T05:28:32.5557394Z           ]
2026-06-19T05:28:32.5557494Z         },
2026-06-19T05:28:32.5557602Z         "int": {
2026-06-19T05:28:32.5557718Z           "complete": false,
2026-06-19T05:28:32.5557828Z           "evidence": []
2026-06-19T05:28:32.5557931Z         },
2026-06-19T05:28:32.5558029Z         "unit": {
2026-06-19T05:28:32.5558223Z           "complete": true,
2026-06-19T05:28:32.5558329Z           "evidence": [
2026-06-19T05:28:32.5558437Z             {
2026-06-19T05:28:32.5558595Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5558705Z               "line": 326
2026-06-19T05:28:32.5558814Z             },
2026-06-19T05:28:32.5558914Z             {
2026-06-19T05:28:32.5559242Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5559347Z               "line": 337
2026-06-19T05:28:32.5559455Z             }
2026-06-19T05:28:32.5559559Z           ]
2026-06-19T05:28:32.5559660Z         }
2026-06-19T05:28:32.5559760Z       }
2026-06-19T05:28:32.5559859Z     },
2026-06-19T05:28:32.5559965Z     {
2026-06-19T05:28:32.5560074Z       "id": "REQ-SEC-1",
2026-06-19T05:28:32.5560498Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-19T05:28:32.5560614Z       "requiredStages": [
2026-06-19T05:28:32.5560718Z         "impl",
2026-06-19T05:28:32.5560823Z         "unit"
2026-06-19T05:28:32.5560914Z       ],
2026-06-19T05:28:32.5561033Z       "stages": {
2026-06-19T05:28:32.5561137Z         "doc": {
2026-06-19T05:28:32.5561253Z           "complete": false,
2026-06-19T05:28:32.5561371Z           "evidence": []
2026-06-19T05:28:32.5561477Z         },
2026-06-19T05:28:32.5561582Z         "impl": {
2026-06-19T05:28:32.5561695Z           "complete": true,
2026-06-19T05:28:32.5561811Z           "evidence": [
2026-06-19T05:28:32.5561916Z             {
2026-06-19T05:28:32.5562066Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:28:32.5562172Z               "line": 86
2026-06-19T05:28:32.5562275Z             },
2026-06-19T05:28:32.5562373Z             {
2026-06-19T05:28:32.5562512Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:28:32.5562613Z               "line": 116
2026-06-19T05:28:32.5562717Z             },
2026-06-19T05:28:32.5562818Z             {
2026-06-19T05:28:32.5562966Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:28:32.5563075Z               "line": 130
2026-06-19T05:28:32.5563181Z             },
2026-06-19T05:28:32.5563281Z             {
2026-06-19T05:28:32.5563423Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:28:32.5563538Z               "line": 109
2026-06-19T05:28:32.5563642Z             },
2026-06-19T05:28:32.5563743Z             {
2026-06-19T05:28:32.5563876Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:28:32.5563990Z               "line": 130
2026-06-19T05:28:32.5564092Z             },
2026-06-19T05:28:32.5564196Z             {
2026-06-19T05:28:32.5564344Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:28:32.5564454Z               "line": 143
2026-06-19T05:28:32.5564552Z             },
2026-06-19T05:28:32.5564647Z             {
2026-06-19T05:28:32.5564781Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:28:32.5564893Z               "line": 209
2026-06-19T05:28:32.5564997Z             },
2026-06-19T05:28:32.5565104Z             {
2026-06-19T05:28:32.5565231Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:28:32.5565346Z               "line": 235
2026-06-19T05:28:32.5565442Z             },
2026-06-19T05:28:32.5565546Z             {
2026-06-19T05:28:32.5565676Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5565785Z               "line": 5152
2026-06-19T05:28:32.5565889Z             }
2026-06-19T05:28:32.5565986Z           ]
2026-06-19T05:28:32.5566090Z         },
2026-06-19T05:28:32.5566199Z         "int": {
2026-06-19T05:28:32.5566319Z           "complete": false,
2026-06-19T05:28:32.5566424Z           "evidence": []
2026-06-19T05:28:32.5566528Z         },
2026-06-19T05:28:32.5566634Z         "unit": {
2026-06-19T05:28:32.5566739Z           "complete": true,
2026-06-19T05:28:32.5566843Z           "evidence": [
2026-06-19T05:28:32.5566945Z             {
2026-06-19T05:28:32.5567187Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:28:32.5567298Z               "line": 142
2026-06-19T05:28:32.5567401Z             },
2026-06-19T05:28:32.5567510Z             {
2026-06-19T05:28:32.5567649Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:28:32.5567762Z               "line": 194
2026-06-19T05:28:32.5567934Z             },
2026-06-19T05:28:32.5568040Z             {
2026-06-19T05:28:32.5568177Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-19T05:28:32.5568279Z               "line": 235
2026-06-19T05:28:32.5568388Z             },
2026-06-19T05:28:32.5568487Z             {
2026-06-19T05:28:32.5568635Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-19T05:28:32.5568740Z               "line": 140
2026-06-19T05:28:32.5568845Z             },
2026-06-19T05:28:32.5569031Z             {
2026-06-19T05:28:32.5569170Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:28:32.5569279Z               "line": 247
2026-06-19T05:28:32.5569379Z             },
2026-06-19T05:28:32.5569479Z             {
2026-06-19T05:28:32.5569613Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:28:32.5569722Z               "line": 277
2026-06-19T05:28:32.5569826Z             },
2026-06-19T05:28:32.5569930Z             {
2026-06-19T05:28:32.5570071Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:28:32.5570182Z               "line": 310
2026-06-19T05:28:32.5570287Z             },
2026-06-19T05:28:32.5570391Z             {
2026-06-19T05:28:32.5570530Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:28:32.5570639Z               "line": 329
2026-06-19T05:28:32.5570734Z             },
2026-06-19T05:28:32.5570822Z             {
2026-06-19T05:28:32.5570959Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:28:32.5571068Z               "line": 362
2026-06-19T05:28:32.5571169Z             },
2026-06-19T05:28:32.5571269Z             {
2026-06-19T05:28:32.5571421Z               "path": "crates/spt-store/src/access.rs",
2026-06-19T05:28:32.5571526Z               "line": 386
2026-06-19T05:28:32.5571636Z             },
2026-06-19T05:28:32.5571741Z             {
2026-06-19T05:28:32.5571879Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5571989Z               "line": 8101
2026-06-19T05:28:32.5572100Z             }
2026-06-19T05:28:32.5572194Z           ]
2026-06-19T05:28:32.5572294Z         }
2026-06-19T05:28:32.5572395Z       }
2026-06-19T05:28:32.5572504Z     },
2026-06-19T05:28:32.5572622Z     {
2026-06-19T05:28:32.5572746Z       "id": "REQ-SEND-SPT-HOSTED",
2026-06-19T05:28:32.5576468Z       "title": "An inbound `spt send` is DELIVERED to an spt-hosted endpoint (brought up via `spt endpoint run` → `api bind`, broker holds its PTY, NO `api listen` relay). Today cmd_bind→establish_perch (api/startup.rs ~441) writes info.json + ready marker + controllable=Some(true) but registers NO message-listener / NO address, so deliver.rs resolve_address→None→spool (deliver.rs:132-140) and the message NEVER reaches the live PTY — the endpoint reads 'online' (ready marker) yet `spt send` silently SPOOLS ('online but not deliverable' lie). Per CONTEXT:187-188 the daemon owns the PTY and delivers, manifest-configurable per activity-state (direct PTY injection / relay / HTTP). FIX: route an inbound send for an spt-hosted target through the daemon → broker InputReq → session.write_input PTY-inject (broker.rs dispatch_input/write_input ~988-1022), the same path the brain uses; the live-delivery handshake must report Sent (not Queued) and stop the spool-only fallback for a broker-hosted, PTY-resident endpoint. Detection is local: controllable==Some(true) + spt-hosted state + resolve_address==None. = the spt-core HALF of the wall-b finding (perri owns the adapter half: bind-hook fired-zero-perch + the missing endpoint-run int test). (post-v0.10.0)",
2026-06-19T05:28:32.5576660Z       "requiredStages": [
2026-06-19T05:28:32.5576769Z         "impl",
2026-06-19T05:28:32.5576998Z         "unit",
2026-06-19T05:28:32.5577107Z         "int"
2026-06-19T05:28:32.5577195Z       ],
2026-06-19T05:28:32.5577304Z       "stages": {
2026-06-19T05:28:32.5577408Z         "doc": {
2026-06-19T05:28:32.5577524Z           "complete": false,
2026-06-19T05:28:32.5577633Z           "evidence": []
2026-06-19T05:28:32.5577723Z         },
2026-06-19T05:28:32.5577957Z         "impl": {
2026-06-19T05:28:32.5578061Z           "complete": true,
2026-06-19T05:28:32.5578165Z           "evidence": [
2026-06-19T05:28:32.5578272Z             {
2026-06-19T05:28:32.5578418Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.5578533Z               "line": 1018
2026-06-19T05:28:32.5578638Z             },
2026-06-19T05:28:32.5578737Z             {
2026-06-19T05:28:32.5578881Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.5579062Z               "line": 1061
2026-06-19T05:28:32.5579163Z             },
2026-06-19T05:28:32.5579267Z             {
2026-06-19T05:28:32.5579410Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5579515Z               "line": 2726
2026-06-19T05:28:32.5579620Z             }
2026-06-19T05:28:32.5579720Z           ]
2026-06-19T05:28:32.5579821Z         },
2026-06-19T05:28:32.5579934Z         "int": {
2026-06-19T05:28:32.5580044Z           "complete": true,
2026-06-19T05:28:32.5580159Z           "evidence": [
2026-06-19T05:28:32.5580263Z             {
2026-06-19T05:28:32.5580415Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:28:32.5580523Z               "line": 187
2026-06-19T05:28:32.5580627Z             },
2026-06-19T05:28:32.5580737Z             {
2026-06-19T05:28:32.5580885Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-19T05:28:32.5580989Z               "line": 503
2026-06-19T05:28:32.5581090Z             }
2026-06-19T05:28:32.5581194Z           ]
2026-06-19T05:28:32.5581294Z         },
2026-06-19T05:28:32.5581405Z         "unit": {
2026-06-19T05:28:32.5581519Z           "complete": true,
2026-06-19T05:28:32.5581623Z           "evidence": [
2026-06-19T05:28:32.5581729Z             {
2026-06-19T05:28:32.5581862Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-19T05:28:32.5581967Z               "line": 904
2026-06-19T05:28:32.5582072Z             },
2026-06-19T05:28:32.5582181Z             {
2026-06-19T05:28:32.5582311Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5582425Z               "line": 7343
2026-06-19T05:28:32.5582530Z             }
2026-06-19T05:28:32.5582631Z           ]
2026-06-19T05:28:32.5582740Z         }
2026-06-19T05:28:32.5582835Z       }
2026-06-19T05:28:32.5582941Z     },
2026-06-19T05:28:32.5583041Z     {
2026-06-19T05:28:32.5583149Z       "id": "REQ-SHELL-1",
2026-06-19T05:28:32.5584067Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-19T05:28:32.5584180Z       "requiredStages": [
2026-06-19T05:28:32.5584286Z         "impl",
2026-06-19T05:28:32.5584396Z         "unit",
2026-06-19T05:28:32.5584495Z         "int"
2026-06-19T05:28:32.5584592Z       ],
2026-06-19T05:28:32.5584691Z       "stages": {
2026-06-19T05:28:32.5584805Z         "doc": {
2026-06-19T05:28:32.5584916Z           "complete": false,
2026-06-19T05:28:32.5585030Z           "evidence": []
2026-06-19T05:28:32.5585134Z         },
2026-06-19T05:28:32.5585240Z         "impl": {
2026-06-19T05:28:32.5585358Z           "complete": true,
2026-06-19T05:28:32.5585469Z           "evidence": [
2026-06-19T05:28:32.5585570Z             {
2026-06-19T05:28:32.5585720Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5585825Z               "line": 189
2026-06-19T05:28:32.5585920Z             },
2026-06-19T05:28:32.5586028Z             {
2026-06-19T05:28:32.5586286Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5586399Z               "line": 268
2026-06-19T05:28:32.5586505Z             },
2026-06-19T05:28:32.5586605Z             {
2026-06-19T05:28:32.5586757Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:28:32.5586863Z               "line": 27
2026-06-19T05:28:32.5587052Z             },
2026-06-19T05:28:32.5587158Z             {
2026-06-19T05:28:32.5587306Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:28:32.5587415Z               "line": 52
2026-06-19T05:28:32.5587516Z             },
2026-06-19T05:28:32.5587621Z             {
2026-06-19T05:28:32.5587765Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:28:32.5587873Z               "line": 144
2026-06-19T05:28:32.5587982Z             },
2026-06-19T05:28:32.5588084Z             {
2026-06-19T05:28:32.5588235Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:28:32.5588346Z               "line": 176
2026-06-19T05:28:32.5588451Z             },
2026-06-19T05:28:32.5588554Z             {
2026-06-19T05:28:32.5588702Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5588807Z               "line": 22
2026-06-19T05:28:32.5588911Z             },
2026-06-19T05:28:32.5589084Z             {
2026-06-19T05:28:32.5589217Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5589321Z               "line": 65
2026-06-19T05:28:32.5589427Z             },
2026-06-19T05:28:32.5589527Z             {
2026-06-19T05:28:32.5589680Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5589789Z               "line": 76
2026-06-19T05:28:32.5589888Z             },
2026-06-19T05:28:32.5589990Z             {
2026-06-19T05:28:32.5590137Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5590256Z               "line": 151
2026-06-19T05:28:32.5590357Z             },
2026-06-19T05:28:32.5590460Z             {
2026-06-19T05:28:32.5590595Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5590710Z               "line": 210
2026-06-19T05:28:32.5590813Z             },
2026-06-19T05:28:32.5590917Z             {
2026-06-19T05:28:32.5591065Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5591173Z               "line": 258
2026-06-19T05:28:32.5591287Z             },
2026-06-19T05:28:32.5591379Z             {
2026-06-19T05:28:32.5591530Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5591636Z               "line": 280
2026-06-19T05:28:32.5591741Z             },
2026-06-19T05:28:32.5591850Z             {
2026-06-19T05:28:32.5591984Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5592098Z               "line": 293
2026-06-19T05:28:32.5592193Z             },
2026-06-19T05:28:32.5592299Z             {
2026-06-19T05:28:32.5592446Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.5592552Z               "line": 217
2026-06-19T05:28:32.5592660Z             },
2026-06-19T05:28:32.5592761Z             {
2026-06-19T05:28:32.5592905Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.5593013Z               "line": 233
2026-06-19T05:28:32.5593118Z             },
2026-06-19T05:28:32.5593225Z             {
2026-06-19T05:28:32.5593381Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.5593482Z               "line": 41
2026-06-19T05:28:32.5593582Z             },
2026-06-19T05:28:32.5593690Z             {
2026-06-19T05:28:32.5593837Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.5593950Z               "line": 222
2026-06-19T05:28:32.5594059Z             },
2026-06-19T05:28:32.5594159Z             {
2026-06-19T05:28:32.5594293Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-19T05:28:32.5594402Z               "line": 173
2026-06-19T05:28:32.5594504Z             },
2026-06-19T05:28:32.5594722Z             {
2026-06-19T05:28:32.5594856Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.5594965Z               "line": 354
2026-06-19T05:28:32.5595065Z             },
2026-06-19T05:28:32.5595171Z             {
2026-06-19T05:28:32.5595299Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.5595414Z               "line": 419
2026-06-19T05:28:32.5595609Z             },
2026-06-19T05:28:32.5595714Z             {
2026-06-19T05:28:32.5595862Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5595967Z               "line": 329
2026-06-19T05:28:32.5596073Z             },
2026-06-19T05:28:32.5596177Z             {
2026-06-19T05:28:32.5596313Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5596428Z               "line": 6177
2026-06-19T05:28:32.5596531Z             },
2026-06-19T05:28:32.5596635Z             {
2026-06-19T05:28:32.5596755Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5596874Z               "line": 6327
2026-06-19T05:28:32.5596969Z             },
2026-06-19T05:28:32.5597075Z             {
2026-06-19T05:28:32.5597203Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5597312Z               "line": 6503
2026-06-19T05:28:32.5597427Z             }
2026-06-19T05:28:32.5597528Z           ]
2026-06-19T05:28:32.5597627Z         },
2026-06-19T05:28:32.5597733Z         "int": {
2026-06-19T05:28:32.5597857Z           "complete": true,
2026-06-19T05:28:32.5597966Z           "evidence": [
2026-06-19T05:28:32.5598067Z             {
2026-06-19T05:28:32.5598228Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.5598334Z               "line": 711
2026-06-19T05:28:32.5598433Z             },
2026-06-19T05:28:32.5598529Z             {
2026-06-19T05:28:32.5598697Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-19T05:28:32.5598809Z               "line": 8
2026-06-19T05:28:32.5598916Z             },
2026-06-19T05:28:32.5599119Z             {
2026-06-19T05:28:32.5599266Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-19T05:28:32.5599382Z               "line": 49
2026-06-19T05:28:32.5599485Z             },
2026-06-19T05:28:32.5599591Z             {
2026-06-19T05:28:32.5599744Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5599853Z               "line": 777
2026-06-19T05:28:32.5599964Z             },
2026-06-19T05:28:32.5600069Z             {
2026-06-19T05:28:32.5600215Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5600331Z               "line": 1212
2026-06-19T05:28:32.5600430Z             },
2026-06-19T05:28:32.5600530Z             {
2026-06-19T05:28:32.5600678Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-19T05:28:32.5600787Z               "line": 17
2026-06-19T05:28:32.5600889Z             },
2026-06-19T05:28:32.5600993Z             {
2026-06-19T05:28:32.5601131Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-19T05:28:32.5601256Z               "line": 14
2026-06-19T05:28:32.5601354Z             }
2026-06-19T05:28:32.5603554Z           ]
2026-06-19T05:28:32.5603688Z         },
2026-06-19T05:28:32.5603795Z         "unit": {
2026-06-19T05:28:32.5603916Z           "complete": true,
2026-06-19T05:28:32.5604032Z           "evidence": [
2026-06-19T05:28:32.5604133Z             {
2026-06-19T05:28:32.5604307Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:28:32.5604421Z               "line": 246
2026-06-19T05:28:32.5604525Z             },
2026-06-19T05:28:32.5604629Z             {
2026-06-19T05:28:32.5604792Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:28:32.5604896Z               "line": 279
2026-06-19T05:28:32.5604991Z             },
2026-06-19T05:28:32.5605097Z             {
2026-06-19T05:28:32.5605229Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:28:32.5605335Z               "line": 319
2026-06-19T05:28:32.5605563Z             },
2026-06-19T05:28:32.5605659Z             {
2026-06-19T05:28:32.5605811Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5605921Z               "line": 598
2026-06-19T05:28:32.5606027Z             },
2026-06-19T05:28:32.5606131Z             {
2026-06-19T05:28:32.5606279Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5606479Z               "line": 671
2026-06-19T05:28:32.5606589Z             },
2026-06-19T05:28:32.5606690Z             {
2026-06-19T05:28:32.5606841Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5606945Z               "line": 815
2026-06-19T05:28:32.5607045Z             },
2026-06-19T05:28:32.5607153Z             {
2026-06-19T05:28:32.5607291Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.5607406Z               "line": 595
2026-06-19T05:28:32.5607515Z             },
2026-06-19T05:28:32.5607616Z             {
2026-06-19T05:28:32.5607763Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-19T05:28:32.5607872Z               "line": 399
2026-06-19T05:28:32.5607978Z             },
2026-06-19T05:28:32.5608083Z             {
2026-06-19T05:28:32.5608216Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5608321Z               "line": 8781
2026-06-19T05:28:32.5608421Z             },
2026-06-19T05:28:32.5608531Z             {
2026-06-19T05:28:32.5608660Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5608774Z               "line": 9105
2026-06-19T05:28:32.5608880Z             },
2026-06-19T05:28:32.5609065Z             {
2026-06-19T05:28:32.5609195Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5609313Z               "line": 9522
2026-06-19T05:28:32.5609413Z             }
2026-06-19T05:28:32.5609514Z           ]
2026-06-19T05:28:32.5609623Z         }
2026-06-19T05:28:32.5609722Z       }
2026-06-19T05:28:32.5609826Z     },
2026-06-19T05:28:32.5609932Z     {
2026-06-19T05:28:32.5610041Z       "id": "REQ-SHELL-2",
2026-06-19T05:28:32.5611590Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-19T05:28:32.5611715Z       "requiredStages": [
2026-06-19T05:28:32.5611826Z         "impl",
2026-06-19T05:28:32.5611933Z         "unit",
2026-06-19T05:28:32.5612033Z         "int"
2026-06-19T05:28:32.5612133Z       ],
2026-06-19T05:28:32.5612237Z       "stages": {
2026-06-19T05:28:32.5612341Z         "doc": {
2026-06-19T05:28:32.5612461Z           "complete": false,
2026-06-19T05:28:32.5612565Z           "evidence": []
2026-06-19T05:28:32.5612670Z         },
2026-06-19T05:28:32.5612781Z         "impl": {
2026-06-19T05:28:32.5612899Z           "complete": true,
2026-06-19T05:28:32.5613003Z           "evidence": [
2026-06-19T05:28:32.5613105Z             {
2026-06-19T05:28:32.5613251Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.5613376Z               "line": 217
2026-06-19T05:28:32.5613476Z             },
2026-06-19T05:28:32.5613594Z             {
2026-06-19T05:28:32.5613749Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.5613853Z               "line": 403
2026-06-19T05:28:32.5613953Z             },
2026-06-19T05:28:32.5614059Z             {
2026-06-19T05:28:32.5614205Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-19T05:28:32.5614316Z               "line": 250
2026-06-19T05:28:32.5614420Z             },
2026-06-19T05:28:32.5614525Z             {
2026-06-19T05:28:32.5614669Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.5614782Z               "line": 403
2026-06-19T05:28:32.5614986Z             },
2026-06-19T05:28:32.5615090Z             {
2026-06-19T05:28:32.5615246Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5615352Z               "line": 30
2026-06-19T05:28:32.5615456Z             },
2026-06-19T05:28:32.5615560Z             {
2026-06-19T05:28:32.5615714Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5615939Z               "line": 409
2026-06-19T05:28:32.5616038Z             },
2026-06-19T05:28:32.5616142Z             {
2026-06-19T05:28:32.5616287Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5616401Z               "line": 445
2026-06-19T05:28:32.5616500Z             },
2026-06-19T05:28:32.5616607Z             {
2026-06-19T05:28:32.5616757Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5616864Z               "line": 660
2026-06-19T05:28:32.5616968Z             },
2026-06-19T05:28:32.5617068Z             {
2026-06-19T05:28:32.5617217Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.5617334Z               "line": 348
2026-06-19T05:28:32.5617433Z             },
2026-06-19T05:28:32.5617539Z             {
2026-06-19T05:28:32.5617684Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:28:32.5617793Z               "line": 115
2026-06-19T05:28:32.5617890Z             },
2026-06-19T05:28:32.5617994Z             {
2026-06-19T05:28:32.5618142Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5618248Z               "line": 120
2026-06-19T05:28:32.5618351Z             },
2026-06-19T05:28:32.5618452Z             {
2026-06-19T05:28:32.5618595Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5618709Z               "line": 373
2026-06-19T05:28:32.5618811Z             },
2026-06-19T05:28:32.5618914Z             {
2026-06-19T05:28:32.5619145Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5619258Z               "line": 499
2026-06-19T05:28:32.5619363Z             },
2026-06-19T05:28:32.5619459Z             {
2026-06-19T05:28:32.5619606Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5619711Z               "line": 24
2026-06-19T05:28:32.5619817Z             },
2026-06-19T05:28:32.5619911Z             {
2026-06-19T05:28:32.5620055Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5620164Z               "line": 76
2026-06-19T05:28:32.5620273Z             },
2026-06-19T05:28:32.5620368Z             {
2026-06-19T05:28:32.5620521Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5620625Z               "line": 154
2026-06-19T05:28:32.5620731Z             },
2026-06-19T05:28:32.5620835Z             {
2026-06-19T05:28:32.5620977Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5621093Z               "line": 177
2026-06-19T05:28:32.5621189Z             },
2026-06-19T05:28:32.5621292Z             {
2026-06-19T05:28:32.5621441Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5621546Z               "line": 273
2026-06-19T05:28:32.5621646Z             },
2026-06-19T05:28:32.5621746Z             {
2026-06-19T05:28:32.5621884Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5621995Z               "line": 456
2026-06-19T05:28:32.5622099Z             },
2026-06-19T05:28:32.5622204Z             {
2026-06-19T05:28:32.5622348Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5622461Z               "line": 538
2026-06-19T05:28:32.5622560Z             },
2026-06-19T05:28:32.5622665Z             {
2026-06-19T05:28:32.5622816Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-19T05:28:32.5622924Z               "line": 27
2026-06-19T05:28:32.5623031Z             },
2026-06-19T05:28:32.5623130Z             {
2026-06-19T05:28:32.5623278Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-19T05:28:32.5623492Z               "line": 48
2026-06-19T05:28:32.5623593Z             },
2026-06-19T05:28:32.5623698Z             {
2026-06-19T05:28:32.5623840Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5623956Z               "line": 513
2026-06-19T05:28:32.5624050Z             },
2026-06-19T05:28:32.5624150Z             {
2026-06-19T05:28:32.5624275Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5624484Z               "line": 1814
2026-06-19T05:28:32.5624585Z             },
2026-06-19T05:28:32.5624689Z             {
2026-06-19T05:28:32.5624818Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5624933Z               "line": 6191
2026-06-19T05:28:32.5625041Z             },
2026-06-19T05:28:32.5625143Z             {
2026-06-19T05:28:32.5625272Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5625370Z               "line": 6252
2026-06-19T05:28:32.5625479Z             },
2026-06-19T05:28:32.5625580Z             {
2026-06-19T05:28:32.5625711Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5625826Z               "line": 6280
2026-06-19T05:28:32.5625926Z             },
2026-06-19T05:28:32.5626030Z             {
2026-06-19T05:28:32.5626155Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5626269Z               "line": 6334
2026-06-19T05:28:32.5626373Z             },
2026-06-19T05:28:32.5626460Z             {
2026-06-19T05:28:32.5626598Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5626707Z               "line": 6589
2026-06-19T05:28:32.5626808Z             },
2026-06-19T05:28:32.5626912Z             {
2026-06-19T05:28:32.5627036Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5627147Z               "line": 6649
2026-06-19T05:28:32.5627251Z             },
2026-06-19T05:28:32.5627351Z             {
2026-06-19T05:28:32.5627486Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.5627599Z               "line": 298
2026-06-19T05:28:32.5627704Z             },
2026-06-19T05:28:32.5627806Z             {
2026-06-19T05:28:32.5627932Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.5628041Z               "line": 339
2026-06-19T05:28:32.5628142Z             }
2026-06-19T05:28:32.5628239Z           ]
2026-06-19T05:28:32.5628344Z         },
2026-06-19T05:28:32.5628450Z         "int": {
2026-06-19T05:28:32.5628568Z           "complete": true,
2026-06-19T05:28:32.5628673Z           "evidence": [
2026-06-19T05:28:32.5628774Z             {
2026-06-19T05:28:32.5629031Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.5629136Z               "line": 704
2026-06-19T05:28:32.5629231Z             },
2026-06-19T05:28:32.5629337Z             {
2026-06-19T05:28:32.5629503Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5629608Z               "line": 777
2026-06-19T05:28:32.5629710Z             },
2026-06-19T05:28:32.5629813Z             {
2026-06-19T05:28:32.5629942Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5630053Z               "line": 1212
2026-06-19T05:28:32.5630156Z             },
2026-06-19T05:28:32.5630257Z             {
2026-06-19T05:28:32.5630419Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-19T05:28:32.5630524Z               "line": 18
2026-06-19T05:28:32.5630629Z             }
2026-06-19T05:28:32.5630734Z           ]
2026-06-19T05:28:32.5630828Z         },
2026-06-19T05:28:32.5630933Z         "unit": {
2026-06-19T05:28:32.5631048Z           "complete": true,
2026-06-19T05:28:32.5631161Z           "evidence": [
2026-06-19T05:28:32.5631257Z             {
2026-06-19T05:28:32.5631405Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5631509Z               "line": 744
2026-06-19T05:28:32.5631616Z             },
2026-06-19T05:28:32.5631720Z             {
2026-06-19T05:28:32.5631857Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-19T05:28:32.5631963Z               "line": 796
2026-06-19T05:28:32.5632167Z             },
2026-06-19T05:28:32.5632274Z             {
2026-06-19T05:28:32.5632421Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5632531Z               "line": 704
2026-06-19T05:28:32.5632640Z             },
2026-06-19T05:28:32.5632735Z             {
2026-06-19T05:28:32.5632884Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5633087Z               "line": 753
2026-06-19T05:28:32.5633187Z             },
2026-06-19T05:28:32.5633287Z             {
2026-06-19T05:28:32.5633432Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5633543Z               "line": 777
2026-06-19T05:28:32.5633644Z             },
2026-06-19T05:28:32.5633747Z             {
2026-06-19T05:28:32.5633896Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5634005Z               "line": 603
2026-06-19T05:28:32.5634100Z             },
2026-06-19T05:28:32.5634206Z             {
2026-06-19T05:28:32.5634353Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5634453Z               "line": 624
2026-06-19T05:28:32.5634558Z             },
2026-06-19T05:28:32.5634653Z             {
2026-06-19T05:28:32.5634812Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5634921Z               "line": 660
2026-06-19T05:28:32.5635030Z             },
2026-06-19T05:28:32.5635131Z             {
2026-06-19T05:28:32.5635277Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5635393Z               "line": 714
2026-06-19T05:28:32.5635489Z             },
2026-06-19T05:28:32.5635592Z             {
2026-06-19T05:28:32.5635737Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5635846Z               "line": 732
2026-06-19T05:28:32.5635944Z             },
2026-06-19T05:28:32.5636044Z             {
2026-06-19T05:28:32.5636196Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5636309Z               "line": 766
2026-06-19T05:28:32.5636410Z             },
2026-06-19T05:28:32.5636510Z             {
2026-06-19T05:28:32.5636652Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-19T05:28:32.5636763Z               "line": 841
2026-06-19T05:28:32.5636863Z             },
2026-06-19T05:28:32.5636967Z             {
2026-06-19T05:28:32.5637121Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-19T05:28:32.5637234Z               "line": 85
2026-06-19T05:28:32.5637339Z             },
2026-06-19T05:28:32.5637440Z             {
2026-06-19T05:28:32.5637568Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5637674Z               "line": 7901
2026-06-19T05:28:32.5637774Z             },
2026-06-19T05:28:32.5637878Z             {
2026-06-19T05:28:32.5638008Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5638117Z               "line": 8859
2026-06-19T05:28:32.5638207Z             },
2026-06-19T05:28:32.5638314Z             {
2026-06-19T05:28:32.5638441Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5638559Z               "line": 8929
2026-06-19T05:28:32.5638659Z             },
2026-06-19T05:28:32.5638763Z             {
2026-06-19T05:28:32.5638899Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5639087Z               "line": 8967
2026-06-19T05:28:32.5639190Z             }
2026-06-19T05:28:32.5639296Z           ]
2026-06-19T05:28:32.5639391Z         }
2026-06-19T05:28:32.5639476Z       }
2026-06-19T05:28:32.5639577Z     },
2026-06-19T05:28:32.5639682Z     {
2026-06-19T05:28:32.5639796Z       "id": "REQ-SHELL-3",
2026-06-19T05:28:32.5641632Z       "title": "Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).",
2026-06-19T05:28:32.5641875Z       "requiredStages": [
2026-06-19T05:28:32.5641980Z         "impl",
2026-06-19T05:28:32.5642195Z         "unit",
2026-06-19T05:28:32.5642299Z         "int"
2026-06-19T05:28:32.5642403Z       ],
2026-06-19T05:28:32.5642510Z       "stages": {
2026-06-19T05:28:32.5642618Z         "doc": {
2026-06-19T05:28:32.5642741Z           "complete": false,
2026-06-19T05:28:32.5642843Z           "evidence": []
2026-06-19T05:28:32.5642947Z         },
2026-06-19T05:28:32.5643052Z         "impl": {
2026-06-19T05:28:32.5643168Z           "complete": true,
2026-06-19T05:28:32.5643276Z           "evidence": [
2026-06-19T05:28:32.5643381Z             {
2026-06-19T05:28:32.5643524Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.5643652Z               "line": 224
2026-06-19T05:28:32.5643756Z             },
2026-06-19T05:28:32.5643851Z             {
2026-06-19T05:28:32.5644006Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5644103Z               "line": 36
2026-06-19T05:28:32.5644199Z             },
2026-06-19T05:28:32.5644302Z             {
2026-06-19T05:28:32.5644456Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5644565Z               "line": 137
2026-06-19T05:28:32.5644669Z             },
2026-06-19T05:28:32.5644771Z             {
2026-06-19T05:28:32.5644918Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5645033Z               "line": 153
2026-06-19T05:28:32.5645147Z             },
2026-06-19T05:28:32.5645247Z             {
2026-06-19T05:28:32.5645395Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5645500Z               "line": 165
2026-06-19T05:28:32.5645604Z             },
2026-06-19T05:28:32.5645710Z             {
2026-06-19T05:28:32.5645857Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5645968Z               "line": 242
2026-06-19T05:28:32.5646073Z             },
2026-06-19T05:28:32.5646176Z             {
2026-06-19T05:28:32.5646316Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5646434Z               "line": 267
2026-06-19T05:28:32.5646538Z             },
2026-06-19T05:28:32.5646643Z             {
2026-06-19T05:28:32.5646793Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5646902Z               "line": 293
2026-06-19T05:28:32.5647008Z             },
2026-06-19T05:28:32.5647099Z             {
2026-06-19T05:28:32.5647241Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-19T05:28:32.5647352Z               "line": 51
2026-06-19T05:28:32.5647456Z             },
2026-06-19T05:28:32.5647561Z             {
2026-06-19T05:28:32.5647709Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5647861Z               "line": 333
2026-06-19T05:28:32.5647962Z             },
2026-06-19T05:28:32.5648066Z             {
2026-06-19T05:28:32.5648214Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5648315Z               "line": 373
2026-06-19T05:28:32.5648438Z             },
2026-06-19T05:28:32.5648529Z             {
2026-06-19T05:28:32.5648682Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5648815Z               "line": 602
2026-06-19T05:28:32.5648921Z             },
2026-06-19T05:28:32.5649100Z             {
2026-06-19T05:28:32.5649248Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:28:32.5649365Z               "line": 132
2026-06-19T05:28:32.5649469Z             },
2026-06-19T05:28:32.5649575Z             {
2026-06-19T05:28:32.5649722Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5649827Z               "line": 447
2026-06-19T05:28:32.5650051Z             },
2026-06-19T05:28:32.5650152Z             {
2026-06-19T05:28:32.5650295Z               "path": "crates/spt-proto/src/event.rs",
2026-06-19T05:28:32.5650394Z               "line": 74
2026-06-19T05:28:32.5650500Z             },
2026-06-19T05:28:32.5650604Z             {
2026-06-19T05:28:32.5650743Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.5650953Z               "line": 561
2026-06-19T05:28:32.5651053Z             },
2026-06-19T05:28:32.5651159Z             {
2026-06-19T05:28:32.5651306Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5651416Z               "line": 392
2026-06-19T05:28:32.5651507Z             },
2026-06-19T05:28:32.5651600Z             {
2026-06-19T05:28:32.5651736Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5651845Z               "line": 6375
2026-06-19T05:28:32.5651953Z             }
2026-06-19T05:28:32.5652053Z           ]
2026-06-19T05:28:32.5652154Z         },
2026-06-19T05:28:32.5652263Z         "int": {
2026-06-19T05:28:32.5652372Z           "complete": true,
2026-06-19T05:28:32.5652492Z           "evidence": [
2026-06-19T05:28:32.5652586Z             {
2026-06-19T05:28:32.5652741Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5652850Z               "line": 1261
2026-06-19T05:28:32.5652949Z             },
2026-06-19T05:28:32.5653045Z             {
2026-06-19T05:28:32.5653183Z               "path": "crates/spt/tests/drive_e2e.rs",
2026-06-19T05:28:32.5653288Z               "line": 17
2026-06-19T05:28:32.5653389Z             }
2026-06-19T05:28:32.5653498Z           ]
2026-06-19T05:28:32.5653598Z         },
2026-06-19T05:28:32.5653709Z         "unit": {
2026-06-19T05:28:32.5653812Z           "complete": true,
2026-06-19T05:28:32.5653917Z           "evidence": [
2026-06-19T05:28:32.5654014Z             {
2026-06-19T05:28:32.5654160Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5654273Z               "line": 311
2026-06-19T05:28:32.5654370Z             },
2026-06-19T05:28:32.5654472Z             {
2026-06-19T05:28:32.5654605Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5654716Z               "line": 325
2026-06-19T05:28:32.5654815Z             },
2026-06-19T05:28:32.5654915Z             {
2026-06-19T05:28:32.5655059Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5655173Z               "line": 343
2026-06-19T05:28:32.5655273Z             },
2026-06-19T05:28:32.5655378Z             {
2026-06-19T05:28:32.5655525Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5655636Z               "line": 364
2026-06-19T05:28:32.5655731Z             },
2026-06-19T05:28:32.5655821Z             {
2026-06-19T05:28:32.5655965Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-19T05:28:32.5656079Z               "line": 376
2026-06-19T05:28:32.5656188Z             },
2026-06-19T05:28:32.5656285Z             {
2026-06-19T05:28:32.5656437Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5656542Z               "line": 897
2026-06-19T05:28:32.5656642Z             },
2026-06-19T05:28:32.5656736Z             {
2026-06-19T05:28:32.5656866Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5656980Z               "line": 957
2026-06-19T05:28:32.5657169Z             },
2026-06-19T05:28:32.5657283Z             {
2026-06-19T05:28:32.5657429Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-19T05:28:32.5657545Z               "line": 338
2026-06-19T05:28:32.5657645Z             },
2026-06-19T05:28:32.5657748Z             {
2026-06-19T05:28:32.5657888Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.5657993Z               "line": 769
2026-06-19T05:28:32.5658096Z             },
2026-06-19T05:28:32.5658198Z             {
2026-06-19T05:28:32.5658331Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5658446Z               "line": 8641
2026-06-19T05:28:32.5658626Z             }
2026-06-19T05:28:32.5658726Z           ]
2026-06-19T05:28:32.5658832Z         }
2026-06-19T05:28:32.5659027Z       }
2026-06-19T05:28:32.5659129Z     },
2026-06-19T05:28:32.5659237Z     {
2026-06-19T05:28:32.5659346Z       "id": "REQ-SHELL-4",
2026-06-19T05:28:32.5661164Z       "title": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).",
2026-06-19T05:28:32.5661385Z       "requiredStages": [
2026-06-19T05:28:32.5661489Z         "doc",
2026-06-19T05:28:32.5661603Z         "impl",
2026-06-19T05:28:32.5661714Z         "unit",
2026-06-19T05:28:32.5661817Z         "int"
2026-06-19T05:28:32.5661918Z       ],
2026-06-19T05:28:32.5662024Z       "stages": {
2026-06-19T05:28:32.5662123Z         "doc": {
2026-06-19T05:28:32.5662237Z           "complete": true,
2026-06-19T05:28:32.5662348Z           "evidence": [
2026-06-19T05:28:32.5662461Z             {
2026-06-19T05:28:32.5662584Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.5662700Z               "line": 281
2026-06-19T05:28:32.5662799Z             },
2026-06-19T05:28:32.5662908Z             {
2026-06-19T05:28:32.5663161Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-19T05:28:32.5663267Z               "line": 88
2026-06-19T05:28:32.5663367Z             }
2026-06-19T05:28:32.5663466Z           ]
2026-06-19T05:28:32.5663567Z         },
2026-06-19T05:28:32.5663677Z         "impl": {
2026-06-19T05:28:32.5663795Z           "complete": true,
2026-06-19T05:28:32.5663911Z           "evidence": [
2026-06-19T05:28:32.5664015Z             {
2026-06-19T05:28:32.5664163Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.5664278Z               "line": 238
2026-06-19T05:28:32.5664386Z             },
2026-06-19T05:28:32.5664482Z             {
2026-06-19T05:28:32.5664627Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-19T05:28:32.5664739Z               "line": 61
2026-06-19T05:28:32.5664848Z             },
2026-06-19T05:28:32.5664953Z             {
2026-06-19T05:28:32.5665099Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5665213Z               "line": 218
2026-06-19T05:28:32.5665314Z             },
2026-06-19T05:28:32.5665418Z             {
2026-06-19T05:28:32.5665562Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5665666Z               "line": 245
2026-06-19T05:28:32.5665771Z             },
2026-06-19T05:28:32.5665872Z             {
2026-06-19T05:28:32.5666023Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5666139Z               "line": 566
2026-06-19T05:28:32.5666238Z             },
2026-06-19T05:28:32.5666343Z             {
2026-06-19T05:28:32.5666487Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5666605Z               "line": 1141
2026-06-19T05:28:32.5666715Z             },
2026-06-19T05:28:32.5666826Z             {
2026-06-19T05:28:32.5666958Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5667073Z               "line": 1153
2026-06-19T05:28:32.5667179Z             },
2026-06-19T05:28:32.5667268Z             {
2026-06-19T05:28:32.5667417Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5667522Z               "line": 1194
2026-06-19T05:28:32.5667620Z             },
2026-06-19T05:28:32.5667725Z             {
2026-06-19T05:28:32.5667881Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5668105Z               "line": 455
2026-06-19T05:28:32.5668205Z             },
2026-06-19T05:28:32.5668309Z             {
2026-06-19T05:28:32.5668453Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5668571Z               "line": 44
2026-06-19T05:28:32.5668666Z             },
2026-06-19T05:28:32.5668772Z             {
2026-06-19T05:28:32.5668924Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5669201Z               "line": 208
2026-06-19T05:28:32.5669301Z             },
2026-06-19T05:28:32.5669402Z             {
2026-06-19T05:28:32.5669549Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5669654Z               "line": 227
2026-06-19T05:28:32.5669760Z             },
2026-06-19T05:28:32.5669858Z             {
2026-06-19T05:28:32.5670003Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5670117Z               "line": 253
2026-06-19T05:28:32.5670220Z             },
2026-06-19T05:28:32.5670325Z             {
2026-06-19T05:28:32.5670471Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5670575Z               "line": 272
2026-06-19T05:28:32.5670676Z             },
2026-06-19T05:28:32.5670777Z             {
2026-06-19T05:28:32.5670928Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5671034Z               "line": 392
2026-06-19T05:28:32.5671143Z             },
2026-06-19T05:28:32.5671248Z             {
2026-06-19T05:28:32.5671401Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5671509Z               "line": 421
2026-06-19T05:28:32.5671611Z             },
2026-06-19T05:28:32.5671711Z             {
2026-06-19T05:28:32.5671848Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5671969Z               "line": 439
2026-06-19T05:28:32.5672063Z             },
2026-06-19T05:28:32.5672168Z             {
2026-06-19T05:28:32.5672317Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5672431Z               "line": 458
2026-06-19T05:28:32.5672536Z             },
2026-06-19T05:28:32.5672641Z             {
2026-06-19T05:28:32.5672788Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5672899Z               "line": 486
2026-06-19T05:28:32.5673007Z             },
2026-06-19T05:28:32.5673111Z             {
2026-06-19T05:28:32.5673260Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.5673378Z               "line": 580
2026-06-19T05:28:32.5673483Z             },
2026-06-19T05:28:32.5673584Z             {
2026-06-19T05:28:32.5673735Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.5673837Z               "line": 785
2026-06-19T05:28:32.5673936Z             },
2026-06-19T05:28:32.5674027Z             {
2026-06-19T05:28:32.5674175Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5674289Z               "line": 431
2026-06-19T05:28:32.5674398Z             },
2026-06-19T05:28:32.5674499Z             {
2026-06-19T05:28:32.5674627Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5674742Z               "line": 6431
2026-06-19T05:28:32.5674843Z             }
2026-06-19T05:28:32.5674951Z           ]
2026-06-19T05:28:32.5675052Z         },
2026-06-19T05:28:32.5675158Z         "int": {
2026-06-19T05:28:32.5675275Z           "complete": true,
2026-06-19T05:28:32.5675389Z           "evidence": [
2026-06-19T05:28:32.5675494Z             {
2026-06-19T05:28:32.5675625Z               "path": "crates/spt/tests/tunnel_e2e.rs",
2026-06-19T05:28:32.5675740Z               "line": 18
2026-06-19T05:28:32.5675841Z             }
2026-06-19T05:28:32.5675945Z           ]
2026-06-19T05:28:32.5676035Z         },
2026-06-19T05:28:32.5676141Z         "unit": {
2026-06-19T05:28:32.5676259Z           "complete": true,
2026-06-19T05:28:32.5676369Z           "evidence": [
2026-06-19T05:28:32.5676475Z             {
2026-06-19T05:28:32.5676622Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5676856Z               "line": 1391
2026-06-19T05:28:32.5676965Z             },
2026-06-19T05:28:32.5677066Z             {
2026-06-19T05:28:32.5677218Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5677328Z               "line": 1420
2026-06-19T05:28:32.5677433Z             },
2026-06-19T05:28:32.5677614Z             {
2026-06-19T05:28:32.5677772Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5677890Z               "line": 504
2026-06-19T05:28:32.5677987Z             },
2026-06-19T05:28:32.5678091Z             {
2026-06-19T05:28:32.5678237Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5678352Z               "line": 514
2026-06-19T05:28:32.5678450Z             },
2026-06-19T05:28:32.5678550Z             {
2026-06-19T05:28:32.5678698Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5678812Z               "line": 531
2026-06-19T05:28:32.5678921Z             },
2026-06-19T05:28:32.5679117Z             {
2026-06-19T05:28:32.5679265Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5679370Z               "line": 543
2026-06-19T05:28:32.5679474Z             },
2026-06-19T05:28:32.5679575Z             {
2026-06-19T05:28:32.5679718Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-19T05:28:32.5679837Z               "line": 555
2026-06-19T05:28:32.5679934Z             },
2026-06-19T05:28:32.5680042Z             {
2026-06-19T05:28:32.5680180Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.5680287Z               "line": 1086
2026-06-19T05:28:32.5680395Z             },
2026-06-19T05:28:32.5680495Z             {
2026-06-19T05:28:32.5680629Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.5680733Z               "line": 776
2026-06-19T05:28:32.5680837Z             }
2026-06-19T05:28:32.5680937Z           ]
2026-06-19T05:28:32.5681045Z         }
2026-06-19T05:28:32.5681149Z       }
2026-06-19T05:28:32.5681245Z     },
2026-06-19T05:28:32.5681346Z     {
2026-06-19T05:28:32.5681459Z       "id": "REQ-SHELL-5",
2026-06-19T05:28:32.5682681Z       "title": "Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).",
2026-06-19T05:28:32.5682816Z       "requiredStages": [
2026-06-19T05:28:32.5682919Z         "doc",
2026-06-19T05:28:32.5683019Z         "impl",
2026-06-19T05:28:32.5683121Z         "unit",
2026-06-19T05:28:32.5683215Z         "int"
2026-06-19T05:28:32.5683310Z       ],
2026-06-19T05:28:32.5683421Z       "stages": {
2026-06-19T05:28:32.5683530Z         "doc": {
2026-06-19T05:28:32.5683647Z           "complete": true,
2026-06-19T05:28:32.5683777Z           "evidence": [
2026-06-19T05:28:32.5683873Z             {
2026-06-19T05:28:32.5683985Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.5684092Z               "line": 284
2026-06-19T05:28:32.5684206Z             }
2026-06-19T05:28:32.5684310Z           ]
2026-06-19T05:28:32.5684411Z         },
2026-06-19T05:28:32.5684515Z         "impl": {
2026-06-19T05:28:32.5684629Z           "complete": true,
2026-06-19T05:28:32.5684745Z           "evidence": [
2026-06-19T05:28:32.5684835Z             {
2026-06-19T05:28:32.5684992Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-19T05:28:32.5685107Z               "line": 259
2026-06-19T05:28:32.5685207Z             }
2026-06-19T05:28:32.5685312Z           ]
2026-06-19T05:28:32.5685413Z         },
2026-06-19T05:28:32.5685525Z         "int": {
2026-06-19T05:28:32.5685632Z           "complete": true,
2026-06-19T05:28:32.5685747Z           "evidence": [
2026-06-19T05:28:32.5687941Z             {
2026-06-19T05:28:32.5688304Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5688427Z               "line": 826
2026-06-19T05:28:32.5688528Z             },
2026-06-19T05:28:32.5688638Z             {
2026-06-19T05:28:32.5688784Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5688888Z               "line": 1289
2026-06-19T05:28:32.5689177Z             },
2026-06-19T05:28:32.5689277Z             {
2026-06-19T05:28:32.5689453Z               "path": "crates/spt/tests/gateway_owner_shell_e2e.rs",
2026-06-19T05:28:32.5689550Z               "line": 23
2026-06-19T05:28:32.5689654Z             }
2026-06-19T05:28:32.5689758Z           ]
2026-06-19T05:28:32.5689860Z         },
2026-06-19T05:28:32.5689969Z         "unit": {
2026-06-19T05:28:32.5690068Z           "complete": true,
2026-06-19T05:28:32.5690174Z           "evidence": [
2026-06-19T05:28:32.5690278Z             {
2026-06-19T05:28:32.5690421Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-19T05:28:32.5690541Z               "line": 803
2026-06-19T05:28:32.5690631Z             }
2026-06-19T05:28:32.5690731Z           ]
2026-06-19T05:28:32.5690833Z         }
2026-06-19T05:28:32.5690936Z       }
2026-06-19T05:28:32.5691027Z     },
2026-06-19T05:28:32.5691123Z     {
2026-06-19T05:28:32.5691227Z       "id": "REQ-START-1",
2026-06-19T05:28:32.5691440Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-19T05:28:32.5691563Z       "requiredStages": [
2026-06-19T05:28:32.5691667Z         "impl",
2026-06-19T05:28:32.5691772Z         "unit"
2026-06-19T05:28:32.5691864Z       ],
2026-06-19T05:28:32.5691967Z       "stages": {
2026-06-19T05:28:32.5692063Z         "doc": {
2026-06-19T05:28:32.5692178Z           "complete": false,
2026-06-19T05:28:32.5692277Z           "evidence": []
2026-06-19T05:28:32.5692368Z         },
2026-06-19T05:28:32.5692473Z         "impl": {
2026-06-19T05:28:32.5692587Z           "complete": true,
2026-06-19T05:28:32.5692698Z           "evidence": [
2026-06-19T05:28:32.5692802Z             {
2026-06-19T05:28:32.5692950Z               "path": "crates/spt-store/src/seed.rs",
2026-06-19T05:28:32.5693056Z               "line": 16
2026-06-19T05:28:32.5693160Z             }
2026-06-19T05:28:32.5693265Z           ]
2026-06-19T05:28:32.5693366Z         },
2026-06-19T05:28:32.5693465Z         "int": {
2026-06-19T05:28:32.5693584Z           "complete": false,
2026-06-19T05:28:32.5693695Z           "evidence": []
2026-06-19T05:28:32.5693798Z         },
2026-06-19T05:28:32.5693894Z         "unit": {
2026-06-19T05:28:32.5694000Z           "complete": true,
2026-06-19T05:28:32.5694099Z           "evidence": [
2026-06-19T05:28:32.5694203Z             {
2026-06-19T05:28:32.5694337Z               "path": "crates/spt-store/src/seed.rs",
2026-06-19T05:28:32.5694447Z               "line": 48
2026-06-19T05:28:32.5694555Z             },
2026-06-19T05:28:32.5694656Z             {
2026-06-19T05:28:32.5694795Z               "path": "crates/spt-store/src/seed.rs",
2026-06-19T05:28:32.5694908Z               "line": 63
2026-06-19T05:28:32.5695000Z             }
2026-06-19T05:28:32.5695105Z           ]
2026-06-19T05:28:32.5695208Z         }
2026-06-19T05:28:32.5695310Z       }
2026-06-19T05:28:32.5695405Z     },
2026-06-19T05:28:32.5695500Z     {
2026-06-19T05:28:32.5695616Z       "id": "REQ-START-2",
2026-06-19T05:28:32.5695791Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-19T05:28:32.5695901Z       "requiredStages": [
2026-06-19T05:28:32.5696016Z         "impl",
2026-06-19T05:28:32.5696120Z         "unit",
2026-06-19T05:28:32.5696220Z         "int"
2026-06-19T05:28:32.5696325Z       ],
2026-06-19T05:28:32.5696428Z       "stages": {
2026-06-19T05:28:32.5696533Z         "doc": {
2026-06-19T05:28:32.5696652Z           "complete": false,
2026-06-19T05:28:32.5696769Z           "evidence": []
2026-06-19T05:28:32.5696875Z         },
2026-06-19T05:28:32.5696975Z         "impl": {
2026-06-19T05:28:32.5697088Z           "complete": true,
2026-06-19T05:28:32.5697295Z           "evidence": [
2026-06-19T05:28:32.5697403Z             {
2026-06-19T05:28:32.5697552Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5697667Z               "line": 16
2026-06-19T05:28:32.5697766Z             },
2026-06-19T05:28:32.5697867Z             {
2026-06-19T05:28:32.5698010Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5698196Z               "line": 115
2026-06-19T05:28:32.5698300Z             },
2026-06-19T05:28:32.5698390Z             {
2026-06-19T05:28:32.5698530Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5698643Z               "line": 276
2026-06-19T05:28:32.5698734Z             }
2026-06-19T05:28:32.5698831Z           ]
2026-06-19T05:28:32.5698934Z         },
2026-06-19T05:28:32.5699126Z         "int": {
2026-06-19T05:28:32.5699245Z           "complete": true,
2026-06-19T05:28:32.5699348Z           "evidence": [
2026-06-19T05:28:32.5699453Z             {
2026-06-19T05:28:32.5699599Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:28:32.5699722Z               "line": 186
2026-06-19T05:28:32.5699814Z             }
2026-06-19T05:28:32.5699914Z           ]
2026-06-19T05:28:32.5700008Z         },
2026-06-19T05:28:32.5700100Z         "unit": {
2026-06-19T05:28:32.5700210Z           "complete": true,
2026-06-19T05:28:32.5700318Z           "evidence": [
2026-06-19T05:28:32.5700424Z             {
2026-06-19T05:28:32.5700567Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5700676Z               "line": 559
2026-06-19T05:28:32.5700777Z             },
2026-06-19T05:28:32.5700882Z             {
2026-06-19T05:28:32.5701020Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5701125Z               "line": 592
2026-06-19T05:28:32.5701225Z             }
2026-06-19T05:28:32.5701320Z           ]
2026-06-19T05:28:32.5701417Z         }
2026-06-19T05:28:32.5701515Z       }
2026-06-19T05:28:32.5701611Z     },
2026-06-19T05:28:32.5701712Z     {
2026-06-19T05:28:32.5701834Z       "id": "REQ-START-3",
2026-06-19T05:28:32.5702039Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-19T05:28:32.5702156Z       "requiredStages": [
2026-06-19T05:28:32.5702260Z         "impl",
2026-06-19T05:28:32.5702366Z         "unit",
2026-06-19T05:28:32.5702471Z         "int"
2026-06-19T05:28:32.5702575Z       ],
2026-06-19T05:28:32.5702677Z       "stages": {
2026-06-19T05:28:32.5702776Z         "doc": {
2026-06-19T05:28:32.5702885Z           "complete": false,
2026-06-19T05:28:32.5703001Z           "evidence": []
2026-06-19T05:28:32.5703100Z         },
2026-06-19T05:28:32.5703195Z         "impl": {
2026-06-19T05:28:32.5703306Z           "complete": true,
2026-06-19T05:28:32.5703410Z           "evidence": [
2026-06-19T05:28:32.5703515Z             {
2026-06-19T05:28:32.5703663Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:28:32.5703772Z               "line": 23
2026-06-19T05:28:32.5703872Z             },
2026-06-19T05:28:32.5703983Z             {
2026-06-19T05:28:32.5704130Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:28:32.5704236Z               "line": 205
2026-06-19T05:28:32.5704344Z             },
2026-06-19T05:28:32.5704445Z             {
2026-06-19T05:28:32.5704594Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:28:32.5704701Z               "line": 221
2026-06-19T05:28:32.5704810Z             },
2026-06-19T05:28:32.5704916Z             {
2026-06-19T05:28:32.5705054Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5705159Z               "line": 17
2026-06-19T05:28:32.5705260Z             },
2026-06-19T05:28:32.5705364Z             {
2026-06-19T05:28:32.5705502Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5705607Z               "line": 35
2026-06-19T05:28:32.5705707Z             },
2026-06-19T05:28:32.5705808Z             {
2026-06-19T05:28:32.5705946Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5706161Z               "line": 116
2026-06-19T05:28:32.5706256Z             }
2026-06-19T05:28:32.5706356Z           ]
2026-06-19T05:28:32.5706452Z         },
2026-06-19T05:28:32.5706556Z         "int": {
2026-06-19T05:28:32.5706665Z           "complete": true,
2026-06-19T05:28:32.5706776Z           "evidence": [
2026-06-19T05:28:32.5706876Z             {
2026-06-19T05:28:32.5707127Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-19T05:28:32.5707245Z               "line": 488
2026-06-19T05:28:32.5707349Z             }
2026-06-19T05:28:32.5707449Z           ]
2026-06-19T05:28:32.5707550Z         },
2026-06-19T05:28:32.5707654Z         "unit": {
2026-06-19T05:28:32.5707754Z           "complete": true,
2026-06-19T05:28:32.5707864Z           "evidence": [
2026-06-19T05:28:32.5707964Z             {
2026-06-19T05:28:32.5708117Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:28:32.5708227Z               "line": 381
2026-06-19T05:28:32.5708326Z             },
2026-06-19T05:28:32.5708437Z             {
2026-06-19T05:28:32.5708584Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:28:32.5708689Z               "line": 402
2026-06-19T05:28:32.5708790Z             },
2026-06-19T05:28:32.5708889Z             {
2026-06-19T05:28:32.5709105Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-19T05:28:32.5709198Z               "line": 412
2026-06-19T05:28:32.5709299Z             },
2026-06-19T05:28:32.5709400Z             {
2026-06-19T05:28:32.5709547Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5709658Z               "line": 560
2026-06-19T05:28:32.5709758Z             },
2026-06-19T05:28:32.5709865Z             {
2026-06-19T05:28:32.5709999Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5710108Z               "line": 593
2026-06-19T05:28:32.5710211Z             },
2026-06-19T05:28:32.5710312Z             {
2026-06-19T05:28:32.5710451Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5710564Z               "line": 626
2026-06-19T05:28:32.5710665Z             }
2026-06-19T05:28:32.5710765Z           ]
2026-06-19T05:28:32.5710864Z         }
2026-06-19T05:28:32.5710965Z       }
2026-06-19T05:28:32.5711069Z     },
2026-06-19T05:28:32.5711169Z     {
2026-06-19T05:28:32.5711275Z       "id": "REQ-START-4",
2026-06-19T05:28:32.5711442Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-19T05:28:32.5711547Z       "requiredStages": [
2026-06-19T05:28:32.5711643Z         "impl",
2026-06-19T05:28:32.5711737Z         "unit"
2026-06-19T05:28:32.5711827Z       ],
2026-06-19T05:28:32.5711929Z       "stages": {
2026-06-19T05:28:32.5712033Z         "doc": {
2026-06-19T05:28:32.5712147Z           "complete": false,
2026-06-19T05:28:32.5712248Z           "evidence": []
2026-06-19T05:28:32.5712348Z         },
2026-06-19T05:28:32.5712451Z         "impl": {
2026-06-19T05:28:32.5712570Z           "complete": true,
2026-06-19T05:28:32.5712684Z           "evidence": [
2026-06-19T05:28:32.5712787Z             {
2026-06-19T05:28:32.5712931Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5713036Z               "line": 581
2026-06-19T05:28:32.5713131Z             }
2026-06-19T05:28:32.5713222Z           ]
2026-06-19T05:28:32.5713317Z         },
2026-06-19T05:28:32.5713421Z         "int": {
2026-06-19T05:28:32.5713532Z           "complete": false,
2026-06-19T05:28:32.5713646Z           "evidence": []
2026-06-19T05:28:32.5713750Z         },
2026-06-19T05:28:32.5713856Z         "unit": {
2026-06-19T05:28:32.5713960Z           "complete": true,
2026-06-19T05:28:32.5714060Z           "evidence": [
2026-06-19T05:28:32.5714166Z             {
2026-06-19T05:28:32.5714299Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5714404Z               "line": 1022
2026-06-19T05:28:32.5714500Z             }
2026-06-19T05:28:32.5714604Z           ]
2026-06-19T05:28:32.5714704Z         }
2026-06-19T05:28:32.5714801Z       }
2026-06-19T05:28:32.5714995Z     },
2026-06-19T05:28:32.5715097Z     {
2026-06-19T05:28:32.5715215Z       "id": "REQ-START-5",
2026-06-19T05:28:32.5718047Z       "title": "Adapter-agnostic harness-hosted seed + bind-time adapter/profile resolution (ADR-0021): `api seed` carries only parent_pid + session_id (+ optional cwd), no --adapter — a pure \"a harness session exists at this pid\" record; --adapter becomes an OPTIONAL override across the whole api group (an explicit name[:profile] for adapter dev, never required). Omitted, listen/poll resolve the owning adapter/profile AT BIND as a pure read against the live registry — never a seed-time snapshot that can drift: seed parent_pid → exe basename → host_binaries candidate set (REQ-MANIFEST-8) → active-profile pointer (REQ-INSTALL-12) primary, else greatest-registered_at_ms candidate base profile (name-asc tie) → friendly zero-match error. Covers BOTH LiveAgent (listen) and ReadyAgent (poll) bringup. Restores legacy parity: `$LIVE start <id>` → `$SPT listen <id>` with no mandatory --adapter, one generic SessionStart hook per harness binary. (v0.9.0)",
2026-06-19T05:28:32.5718319Z       "requiredStages": [
2026-06-19T05:28:32.5718429Z         "doc",
2026-06-19T05:28:32.5718534Z         "impl",
2026-06-19T05:28:32.5718639Z         "unit",
2026-06-19T05:28:32.5718744Z         "int"
2026-06-19T05:28:32.5718843Z       ],
2026-06-19T05:28:32.5719044Z       "stages": {
2026-06-19T05:28:32.5719134Z         "doc": {
2026-06-19T05:28:32.5719254Z           "complete": true,
2026-06-19T05:28:32.5719364Z           "evidence": [
2026-06-19T05:28:32.5719468Z             {
2026-06-19T05:28:32.5719583Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.5719688Z               "line": 176
2026-06-19T05:28:32.5719788Z             },
2026-06-19T05:28:32.5719884Z             {
2026-06-19T05:28:32.5720050Z               "path": "docs-site/src/harness-contract/api.md",
2026-06-19T05:28:32.5720155Z               "line": 28
2026-06-19T05:28:32.5720261Z             }
2026-06-19T05:28:32.5720383Z           ]
2026-06-19T05:28:32.5720487Z         },
2026-06-19T05:28:32.5720592Z         "impl": {
2026-06-19T05:28:32.5720705Z           "complete": true,
2026-06-19T05:28:32.5720804Z           "evidence": [
2026-06-19T05:28:32.5720900Z             {
2026-06-19T05:28:32.5721048Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.5721153Z               "line": 26
2026-06-19T05:28:32.5721249Z             },
2026-06-19T05:28:32.5721354Z             {
2026-06-19T05:28:32.5721491Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.5721602Z               "line": 212
2026-06-19T05:28:32.5721701Z             },
2026-06-19T05:28:32.5721801Z             {
2026-06-19T05:28:32.5721954Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.5722054Z               "line": 221
2026-06-19T05:28:32.5722155Z             },
2026-06-19T05:28:32.5722255Z             {
2026-06-19T05:28:32.5722387Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.5722498Z               "line": 485
2026-06-19T05:28:32.5722589Z             },
2026-06-19T05:28:32.5722693Z             {
2026-06-19T05:28:32.5722832Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5722941Z               "line": 36
2026-06-19T05:28:32.5723040Z             },
2026-06-19T05:28:32.5723149Z             {
2026-06-19T05:28:32.5723286Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5723395Z               "line": 118
2026-06-19T05:28:32.5723496Z             },
2026-06-19T05:28:32.5723601Z             {
2026-06-19T05:28:32.5723738Z               "path": "crates/spt/src/api/startup.rs",
2026-06-19T05:28:32.5723839Z               "line": 305
2026-06-19T05:28:32.5723939Z             }
2026-06-19T05:28:32.5724038Z           ]
2026-06-19T05:28:32.5724140Z         },
2026-06-19T05:28:32.5724240Z         "int": {
2026-06-19T05:28:32.5724353Z           "complete": true,
2026-06-19T05:28:32.5724464Z           "evidence": [
2026-06-19T05:28:32.5724659Z             {
2026-06-19T05:28:32.5724826Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-19T05:28:32.5724930Z               "line": 17
2026-06-19T05:28:32.5725032Z             }
2026-06-19T05:28:32.5725141Z           ]
2026-06-19T05:28:32.5725240Z         },
2026-06-19T05:28:32.5725347Z         "unit": {
2026-06-19T05:28:32.5725456Z           "complete": true,
2026-06-19T05:28:32.5725657Z           "evidence": [
2026-06-19T05:28:32.5725757Z             {
2026-06-19T05:28:32.5725912Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.5726017Z               "line": 358
2026-06-19T05:28:32.5726118Z             },
2026-06-19T05:28:32.5726217Z             {
2026-06-19T05:28:32.5726366Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-19T05:28:32.5726479Z               "line": 371
2026-06-19T05:28:32.5726570Z             },
2026-06-19T05:28:32.5726676Z             {
2026-06-19T05:28:32.5726818Z               "path": "crates/spt/src/api/mod.rs",
2026-06-19T05:28:32.5726928Z               "line": 597
2026-06-19T05:28:32.5727033Z             }
2026-06-19T05:28:32.5727123Z           ]
2026-06-19T05:28:32.5727227Z         }
2026-06-19T05:28:32.5727325Z       }
2026-06-19T05:28:32.5727428Z     },
2026-06-19T05:28:32.5727528Z     {
2026-06-19T05:28:32.5727639Z       "id": "REQ-STORE-1",
2026-06-19T05:28:32.5728569Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-19T05:28:32.5728694Z       "requiredStages": [
2026-06-19T05:28:32.5728802Z         "impl",
2026-06-19T05:28:32.5728908Z         "unit"
2026-06-19T05:28:32.5729084Z       ],
2026-06-19T05:28:32.5729189Z       "stages": {
2026-06-19T05:28:32.5729290Z         "doc": {
2026-06-19T05:28:32.5729423Z           "complete": false,
2026-06-19T05:28:32.5729529Z           "evidence": []
2026-06-19T05:28:32.5729633Z         },
2026-06-19T05:28:32.5729737Z         "impl": {
2026-06-19T05:28:32.5729848Z           "complete": true,
2026-06-19T05:28:32.5729966Z           "evidence": [
2026-06-19T05:28:32.5730057Z             {
2026-06-19T05:28:32.5730210Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5730328Z               "line": 23
2026-06-19T05:28:32.5730419Z             },
2026-06-19T05:28:32.5730521Z             {
2026-06-19T05:28:32.5730672Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5730782Z               "line": 46
2026-06-19T05:28:32.5730883Z             },
2026-06-19T05:28:32.5730986Z             {
2026-06-19T05:28:32.5731139Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5731242Z               "line": 97
2026-06-19T05:28:32.5731340Z             },
2026-06-19T05:28:32.5731427Z             {
2026-06-19T05:28:32.5731571Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5731679Z               "line": 125
2026-06-19T05:28:32.5731780Z             },
2026-06-19T05:28:32.5731885Z             {
2026-06-19T05:28:32.5732017Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5732128Z               "line": 207
2026-06-19T05:28:32.5732238Z             },
2026-06-19T05:28:32.5732337Z             {
2026-06-19T05:28:32.5732486Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5732595Z               "line": 231
2026-06-19T05:28:32.5732700Z             },
2026-06-19T05:28:32.5732801Z             {
2026-06-19T05:28:32.5732943Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5733059Z               "line": 467
2026-06-19T05:28:32.5733167Z             },
2026-06-19T05:28:32.5733263Z             {
2026-06-19T05:28:32.5733421Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.5733638Z               "line": 25
2026-06-19T05:28:32.5733743Z             },
2026-06-19T05:28:32.5733846Z             {
2026-06-19T05:28:32.5733999Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.5734104Z               "line": 120
2026-06-19T05:28:32.5734203Z             },
2026-06-19T05:28:32.5734303Z             {
2026-06-19T05:28:32.5734556Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.5734652Z               "line": 148
2026-06-19T05:28:32.5734756Z             },
2026-06-19T05:28:32.5734861Z             {
2026-06-19T05:28:32.5735020Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.5735138Z               "line": 165
2026-06-19T05:28:32.5735238Z             },
2026-06-19T05:28:32.5735344Z             {
2026-06-19T05:28:32.5735495Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.5735611Z               "line": 180
2026-06-19T05:28:32.5735706Z             },
2026-06-19T05:28:32.5735815Z             {
2026-06-19T05:28:32.5735969Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.5736081Z               "line": 198
2026-06-19T05:28:32.5736188Z             },
2026-06-19T05:28:32.5736288Z             {
2026-06-19T05:28:32.5736443Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.5736553Z               "line": 207
2026-06-19T05:28:32.5736654Z             },
2026-06-19T05:28:32.5736762Z             {
2026-06-19T05:28:32.5736906Z               "path": "crates/spt-store/src/project.rs",
2026-06-19T05:28:32.5737012Z               "line": 16
2026-06-19T05:28:32.5737115Z             },
2026-06-19T05:28:32.5737222Z             {
2026-06-19T05:28:32.5737364Z               "path": "crates/spt-store/src/project.rs",
2026-06-19T05:28:32.5737488Z               "line": 63
2026-06-19T05:28:32.5737584Z             }
2026-06-19T05:28:32.5737688Z           ]
2026-06-19T05:28:32.5737792Z         },
2026-06-19T05:28:32.5737904Z         "int": {
2026-06-19T05:28:32.5738022Z           "complete": false,
2026-06-19T05:28:32.5738122Z           "evidence": []
2026-06-19T05:28:32.5738232Z         },
2026-06-19T05:28:32.5738346Z         "unit": {
2026-06-19T05:28:32.5738446Z           "complete": true,
2026-06-19T05:28:32.5738557Z           "evidence": [
2026-06-19T05:28:32.5738655Z             {
2026-06-19T05:28:32.5738817Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5738930Z               "line": 584
2026-06-19T05:28:32.5739115Z             },
2026-06-19T05:28:32.5739221Z             {
2026-06-19T05:28:32.5739367Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5739488Z               "line": 594
2026-06-19T05:28:32.5739587Z             },
2026-06-19T05:28:32.5739692Z             {
2026-06-19T05:28:32.5739840Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5739939Z               "line": 616
2026-06-19T05:28:32.5740045Z             },
2026-06-19T05:28:32.5740150Z             {
2026-06-19T05:28:32.5740297Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5740403Z               "line": 632
2026-06-19T05:28:32.5740512Z             },
2026-06-19T05:28:32.5740612Z             {
2026-06-19T05:28:32.5740757Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-19T05:28:32.5740855Z               "line": 690
2026-06-19T05:28:32.5740960Z             },
2026-06-19T05:28:32.5741062Z             {
2026-06-19T05:28:32.5741213Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.5741333Z               "line": 472
2026-06-19T05:28:32.5741443Z             },
2026-06-19T05:28:32.5741541Z             {
2026-06-19T05:28:32.5741694Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-19T05:28:32.5741811Z               "line": 507
2026-06-19T05:28:32.5741915Z             },
2026-06-19T05:28:32.5742011Z             {
2026-06-19T05:28:32.5742145Z               "path": "crates/spt-store/src/project.rs",
2026-06-19T05:28:32.5742364Z               "line": 120
2026-06-19T05:28:32.5742469Z             },
2026-06-19T05:28:32.5742563Z             {
2026-06-19T05:28:32.5742708Z               "path": "crates/spt-store/src/project.rs",
2026-06-19T05:28:32.5742812Z               "line": 128
2026-06-19T05:28:32.5742912Z             }
2026-06-19T05:28:32.5743107Z           ]
2026-06-19T05:28:32.5743207Z         }
2026-06-19T05:28:32.5743309Z       }
2026-06-19T05:28:32.5743403Z     },
2026-06-19T05:28:32.5743503Z     {
2026-06-19T05:28:32.5743624Z       "id": "REQ-SUBNET-1",
2026-06-19T05:28:32.5743967Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-19T05:28:32.5744089Z       "requiredStages": [
2026-06-19T05:28:32.5744189Z         "impl",
2026-06-19T05:28:32.5744293Z         "unit"
2026-06-19T05:28:32.5744397Z       ],
2026-06-19T05:28:32.5744501Z       "stages": {
2026-06-19T05:28:32.5744611Z         "doc": {
2026-06-19T05:28:32.5744721Z           "complete": false,
2026-06-19T05:28:32.5744835Z           "evidence": []
2026-06-19T05:28:32.5744931Z         },
2026-06-19T05:28:32.5745027Z         "impl": {
2026-06-19T05:28:32.5745145Z           "complete": true,
2026-06-19T05:28:32.5745251Z           "evidence": [
2026-06-19T05:28:32.5745355Z             {
2026-06-19T05:28:32.5745513Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5745622Z               "line": 281
2026-06-19T05:28:32.5745731Z             },
2026-06-19T05:28:32.5745832Z             {
2026-06-19T05:28:32.5745989Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5746089Z               "line": 651
2026-06-19T05:28:32.5746195Z             },
2026-06-19T05:28:32.5746285Z             {
2026-06-19T05:28:32.5746423Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5746539Z               "line": 3275
2026-06-19T05:28:32.5746641Z             },
2026-06-19T05:28:32.5746753Z             {
2026-06-19T05:28:32.5746882Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5746994Z               "line": 3585
2026-06-19T05:28:32.5747099Z             },
2026-06-19T05:28:32.5747195Z             {
2026-06-19T05:28:32.5747327Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5747438Z               "line": 3604
2026-06-19T05:28:32.5747542Z             },
2026-06-19T05:28:32.5747642Z             {
2026-06-19T05:28:32.5747767Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5747876Z               "line": 3668
2026-06-19T05:28:32.5747980Z             },
2026-06-19T05:28:32.5748087Z             {
2026-06-19T05:28:32.5748210Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5748329Z               "line": 3710
2026-06-19T05:28:32.5748425Z             },
2026-06-19T05:28:32.5748529Z             {
2026-06-19T05:28:32.5748648Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5748759Z               "line": 3899
2026-06-19T05:28:32.5748862Z             },
2026-06-19T05:28:32.5749036Z             {
2026-06-19T05:28:32.5749168Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5749282Z               "line": 3969
2026-06-19T05:28:32.5749396Z             },
2026-06-19T05:28:32.5749499Z             {
2026-06-19T05:28:32.5749627Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5749742Z               "line": 4193
2026-06-19T05:28:32.5749837Z             },
2026-06-19T05:28:32.5749932Z             {
2026-06-19T05:28:32.5750057Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5750166Z               "line": 4830
2026-06-19T05:28:32.5750270Z             },
2026-06-19T05:28:32.5750372Z             {
2026-06-19T05:28:32.5750528Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.5750634Z               "line": 418
2026-06-19T05:28:32.5750734Z             }
2026-06-19T05:28:32.5750834Z           ]
2026-06-19T05:28:32.5750934Z         },
2026-06-19T05:28:32.5751144Z         "int": {
2026-06-19T05:28:32.5751249Z           "complete": false,
2026-06-19T05:28:32.5751359Z           "evidence": []
2026-06-19T05:28:32.5751463Z         },
2026-06-19T05:28:32.5751569Z         "unit": {
2026-06-19T05:28:32.5751674Z           "complete": true,
2026-06-19T05:28:32.5751787Z           "evidence": [
2026-06-19T05:28:32.5751998Z             {
2026-06-19T05:28:32.5752149Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5752268Z               "line": 1584
2026-06-19T05:28:32.5752371Z             },
2026-06-19T05:28:32.5752471Z             {
2026-06-19T05:28:32.5752600Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5752714Z               "line": 9769
2026-06-19T05:28:32.5752813Z             },
2026-06-19T05:28:32.5752911Z             {
2026-06-19T05:28:32.5753038Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5753142Z               "line": 9939
2026-06-19T05:28:32.5753249Z             },
2026-06-19T05:28:32.5753353Z             {
2026-06-19T05:28:32.5753482Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5753592Z               "line": 9946
2026-06-19T05:28:32.5753696Z             },
2026-06-19T05:28:32.5753801Z             {
2026-06-19T05:28:32.5753921Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5754039Z               "line": 9999
2026-06-19T05:28:32.5754145Z             },
2026-06-19T05:28:32.5754245Z             {
2026-06-19T05:28:32.5754378Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5754489Z               "line": 10016
2026-06-19T05:28:32.5754593Z             },
2026-06-19T05:28:32.5754696Z             {
2026-06-19T05:28:32.5754826Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5754933Z               "line": 10046
2026-06-19T05:28:32.5755037Z             },
2026-06-19T05:28:32.5755143Z             {
2026-06-19T05:28:32.5755267Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5755390Z               "line": 10145
2026-06-19T05:28:32.5755491Z             },
2026-06-19T05:28:32.5755596Z             {
2026-06-19T05:28:32.5755719Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5755839Z               "line": 10296
2026-06-19T05:28:32.5755953Z             }
2026-06-19T05:28:32.5756058Z           ]
2026-06-19T05:28:32.5756163Z         }
2026-06-19T05:28:32.5756268Z       }
2026-06-19T05:28:32.5756368Z     },
2026-06-19T05:28:32.5756459Z     {
2026-06-19T05:28:32.5756573Z       "id": "REQ-SUBNET-2",
2026-06-19T05:28:32.5756835Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-19T05:28:32.5756950Z       "requiredStages": [
2026-06-19T05:28:32.5757065Z         "impl",
2026-06-19T05:28:32.5757255Z         "unit",
2026-06-19T05:28:32.5757361Z         "int"
2026-06-19T05:28:32.5757465Z       ],
2026-06-19T05:28:32.5757573Z       "stages": {
2026-06-19T05:28:32.5757688Z         "doc": {
2026-06-19T05:28:32.5757808Z           "complete": true,
2026-06-19T05:28:32.5757916Z           "evidence": [
2026-06-19T05:28:32.5758017Z             {
2026-06-19T05:28:32.5758207Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-19T05:28:32.5758318Z               "line": 60
2026-06-19T05:28:32.5758422Z             }
2026-06-19T05:28:32.5758527Z           ]
2026-06-19T05:28:32.5758632Z         },
2026-06-19T05:28:32.5758742Z         "impl": {
2026-06-19T05:28:32.5758846Z           "complete": true,
2026-06-19T05:28:32.5759024Z           "evidence": [
2026-06-19T05:28:32.5759128Z             {
2026-06-19T05:28:32.5759272Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.5759386Z               "line": 838
2026-06-19T05:28:32.5759485Z             },
2026-06-19T05:28:32.5759591Z             {
2026-06-19T05:28:32.5759742Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.5759870Z               "line": 1265
2026-06-19T05:28:32.5759961Z             },
2026-06-19T05:28:32.5760236Z             {
2026-06-19T05:28:32.5760384Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5760488Z               "line": 633
2026-06-19T05:28:32.5760588Z             },
2026-06-19T05:28:32.5760689Z             {
2026-06-19T05:28:32.5760840Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-19T05:28:32.5760951Z               "line": 817
2026-06-19T05:28:32.5761155Z             },
2026-06-19T05:28:32.5761262Z             {
2026-06-19T05:28:32.5761403Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5761509Z               "line": 26
2026-06-19T05:28:32.5761609Z             },
2026-06-19T05:28:32.5761718Z             {
2026-06-19T05:28:32.5761862Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5761975Z               "line": 60
2026-06-19T05:28:32.5762080Z             },
2026-06-19T05:28:32.5762177Z             {
2026-06-19T05:28:32.5762323Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5762434Z               "line": 168
2026-06-19T05:28:32.5762540Z             },
2026-06-19T05:28:32.5762647Z             {
2026-06-19T05:28:32.5762795Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5762908Z               "line": 295
2026-06-19T05:28:32.5763007Z             },
2026-06-19T05:28:32.5763107Z             {
2026-06-19T05:28:32.5763246Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5763365Z               "line": 417
2026-06-19T05:28:32.5763466Z             },
2026-06-19T05:28:32.5763566Z             {
2026-06-19T05:28:32.5763722Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-19T05:28:32.5763832Z               "line": 252
2026-06-19T05:28:32.5763923Z             },
2026-06-19T05:28:32.5764022Z             {
2026-06-19T05:28:32.5764157Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5764275Z               "line": 3631
2026-06-19T05:28:32.5764376Z             },
2026-06-19T05:28:32.5764486Z             {
2026-06-19T05:28:32.5764614Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5764720Z               "line": 4132
2026-06-19T05:28:32.5764824Z             },
2026-06-19T05:28:32.5764934Z             {
2026-06-19T05:28:32.5765064Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5765167Z               "line": 4761
2026-06-19T05:28:32.5765275Z             }
2026-06-19T05:28:32.5765376Z           ]
2026-06-19T05:28:32.5765479Z         },
2026-06-19T05:28:32.5765588Z         "int": {
2026-06-19T05:28:32.5765708Z           "complete": true,
2026-06-19T05:28:32.5765822Z           "evidence": [
2026-06-19T05:28:32.5765921Z             {
2026-06-19T05:28:32.5766080Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-19T05:28:32.5766193Z               "line": 22
2026-06-19T05:28:32.5766303Z             },
2026-06-19T05:28:32.5766404Z             {
2026-06-19T05:28:32.5766556Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5766681Z               "line": 644
2026-06-19T05:28:32.5766785Z             },
2026-06-19T05:28:32.5766885Z             {
2026-06-19T05:28:32.5769110Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5769259Z               "line": 886
2026-06-19T05:28:32.5769354Z             }
2026-06-19T05:28:32.5769463Z           ]
2026-06-19T05:28:32.5769574Z         },
2026-06-19T05:28:32.5769673Z         "unit": {
2026-06-19T05:28:32.5769783Z           "complete": true,
2026-06-19T05:28:32.5769884Z           "evidence": [
2026-06-19T05:28:32.5769988Z             {
2026-06-19T05:28:32.5770141Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5770251Z               "line": 586
2026-06-19T05:28:32.5770349Z             },
2026-06-19T05:28:32.5770454Z             {
2026-06-19T05:28:32.5770587Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5770690Z               "line": 9809
2026-06-19T05:28:32.5770796Z             },
2026-06-19T05:28:32.5771019Z             {
2026-06-19T05:28:32.5771153Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5771259Z               "line": 10503
2026-06-19T05:28:32.5771358Z             }
2026-06-19T05:28:32.5771449Z           ]
2026-06-19T05:28:32.5771549Z         }
2026-06-19T05:28:32.5771648Z       }
2026-06-19T05:28:32.5771750Z     },
2026-06-19T05:28:32.5771945Z     {
2026-06-19T05:28:32.5772069Z       "id": "REQ-SUBNET-3",
2026-06-19T05:28:32.5772374Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-19T05:28:32.5772494Z       "requiredStages": [
2026-06-19T05:28:32.5772593Z         "impl",
2026-06-19T05:28:32.5772704Z         "unit"
2026-06-19T05:28:32.5772795Z       ],
2026-06-19T05:28:32.5772903Z       "stages": {
2026-06-19T05:28:32.5773009Z         "doc": {
2026-06-19T05:28:32.5773119Z           "complete": false,
2026-06-19T05:28:32.5773226Z           "evidence": []
2026-06-19T05:28:32.5773336Z         },
2026-06-19T05:28:32.5773441Z         "impl": {
2026-06-19T05:28:32.5773548Z           "complete": true,
2026-06-19T05:28:32.5773658Z           "evidence": [
2026-06-19T05:28:32.5773758Z             {
2026-06-19T05:28:32.5773920Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5774026Z               "line": 152
2026-06-19T05:28:32.5774136Z             },
2026-06-19T05:28:32.5774239Z             {
2026-06-19T05:28:32.5774393Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5774488Z               "line": 299
2026-06-19T05:28:32.5774583Z             },
2026-06-19T05:28:32.5774679Z             {
2026-06-19T05:28:32.5774826Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5774931Z               "line": 443
2026-06-19T05:28:32.5775037Z             },
2026-06-19T05:28:32.5775136Z             {
2026-06-19T05:28:32.5775280Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5775393Z               "line": 532
2026-06-19T05:28:32.5775484Z             },
2026-06-19T05:28:32.5775585Z             {
2026-06-19T05:28:32.5775732Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5775840Z               "line": 125
2026-06-19T05:28:32.5775941Z             },
2026-06-19T05:28:32.5776030Z             {
2026-06-19T05:28:32.5776186Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5776296Z               "line": 253
2026-06-19T05:28:32.5776396Z             },
2026-06-19T05:28:32.5776496Z             {
2026-06-19T05:28:32.5776635Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5776749Z               "line": 264
2026-06-19T05:28:32.5776844Z             },
2026-06-19T05:28:32.5776950Z             {
2026-06-19T05:28:32.5777092Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5777193Z               "line": 285
2026-06-19T05:28:32.5777293Z             },
2026-06-19T05:28:32.5777397Z             {
2026-06-19T05:28:32.5777542Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5777655Z               "line": 621
2026-06-19T05:28:32.5777760Z             },
2026-06-19T05:28:32.5777857Z             {
2026-06-19T05:28:32.5777998Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5778108Z               "line": 680
2026-06-19T05:28:32.5778209Z             },
2026-06-19T05:28:32.5778308Z             {
2026-06-19T05:28:32.5778457Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:28:32.5778566Z               "line": 61
2026-06-19T05:28:32.5778665Z             },
2026-06-19T05:28:32.5778765Z             {
2026-06-19T05:28:32.5778909Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:28:32.5779099Z               "line": 90
2026-06-19T05:28:32.5779195Z             },
2026-06-19T05:28:32.5779299Z             {
2026-06-19T05:28:32.5779443Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:28:32.5779652Z               "line": 125
2026-06-19T05:28:32.5779762Z             },
2026-06-19T05:28:32.5779857Z             {
2026-06-19T05:28:32.5780004Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-19T05:28:32.5780115Z               "line": 9
2026-06-19T05:28:32.5780215Z             },
2026-06-19T05:28:32.5780319Z             {
2026-06-19T05:28:32.5780539Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5780648Z               "line": 3969
2026-06-19T05:28:32.5780750Z             },
2026-06-19T05:28:32.5780853Z             {
2026-06-19T05:28:32.5780977Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.5781086Z               "line": 445
2026-06-19T05:28:32.5781194Z             }
2026-06-19T05:28:32.5781293Z           ]
2026-06-19T05:28:32.5781389Z         },
2026-06-19T05:28:32.5781495Z         "int": {
2026-06-19T05:28:32.5781593Z           "complete": false,
2026-06-19T05:28:32.5781704Z           "evidence": []
2026-06-19T05:28:32.5781809Z         },
2026-06-19T05:28:32.5781913Z         "unit": {
2026-06-19T05:28:32.5782029Z           "complete": true,
2026-06-19T05:28:32.5782133Z           "evidence": [
2026-06-19T05:28:32.5782237Z             {
2026-06-19T05:28:32.5782400Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5782510Z               "line": 1356
2026-06-19T05:28:32.5782614Z             },
2026-06-19T05:28:32.5782720Z             {
2026-06-19T05:28:32.5782867Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5782982Z               "line": 1713
2026-06-19T05:28:32.5783091Z             },
2026-06-19T05:28:32.5783177Z             {
2026-06-19T05:28:32.5783326Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.5783434Z               "line": 890
2026-06-19T05:28:32.5783535Z             },
2026-06-19T05:28:32.5783636Z             {
2026-06-19T05:28:32.5783781Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5783896Z               "line": 991
2026-06-19T05:28:32.5783991Z             },
2026-06-19T05:28:32.5784089Z             {
2026-06-19T05:28:32.5784233Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5784342Z               "line": 1041
2026-06-19T05:28:32.5784446Z             },
2026-06-19T05:28:32.5784537Z             {
2026-06-19T05:28:32.5784686Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5784794Z               "line": 1100
2026-06-19T05:28:32.5784891Z             },
2026-06-19T05:28:32.5784995Z             {
2026-06-19T05:28:32.5785148Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-19T05:28:32.5785249Z               "line": 234
2026-06-19T05:28:32.5785353Z             },
2026-06-19T05:28:32.5785458Z             {
2026-06-19T05:28:32.5785602Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-19T05:28:32.5785715Z               "line": 49
2026-06-19T05:28:32.5785816Z             },
2026-06-19T05:28:32.5785921Z             {
2026-06-19T05:28:32.5786049Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5786164Z               "line": 10145
2026-06-19T05:28:32.5786259Z             },
2026-06-19T05:28:32.5786358Z             {
2026-06-19T05:28:32.5786496Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5786600Z               "line": 10251
2026-06-19T05:28:32.5786713Z             },
2026-06-19T05:28:32.5786813Z             {
2026-06-19T05:28:32.5786938Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5787051Z               "line": 10469
2026-06-19T05:28:32.5787148Z             }
2026-06-19T05:28:32.5787248Z           ]
2026-06-19T05:28:32.5787347Z         }
2026-06-19T05:28:32.5787448Z       }
2026-06-19T05:28:32.5787543Z     },
2026-06-19T05:28:32.5787647Z     {
2026-06-19T05:28:32.5787753Z       "id": "REQ-SUBNET-4",
2026-06-19T05:28:32.5788077Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-19T05:28:32.5788291Z       "requiredStages": [
2026-06-19T05:28:32.5788383Z         "impl",
2026-06-19T05:28:32.5788487Z         "unit"
2026-06-19T05:28:32.5788582Z       ],
2026-06-19T05:28:32.5788688Z       "stages": {
2026-06-19T05:28:32.5788798Z         "doc": {
2026-06-19T05:28:32.5788902Z           "complete": true,
2026-06-19T05:28:32.5789196Z           "evidence": [
2026-06-19T05:28:32.5789301Z             {
2026-06-19T05:28:32.5789483Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-19T05:28:32.5789587Z               "line": 60
2026-06-19T05:28:32.5789697Z             }
2026-06-19T05:28:32.5789798Z           ]
2026-06-19T05:28:32.5789888Z         },
2026-06-19T05:28:32.5789988Z         "impl": {
2026-06-19T05:28:32.5790098Z           "complete": true,
2026-06-19T05:28:32.5790197Z           "evidence": [
2026-06-19T05:28:32.5790298Z             {
2026-06-19T05:28:32.5790427Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5790550Z               "line": 3275
2026-06-19T05:28:32.5790652Z             },
2026-06-19T05:28:32.5790751Z             {
2026-06-19T05:28:32.5790875Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5790981Z               "line": 4728
2026-06-19T05:28:32.5791085Z             },
2026-06-19T05:28:32.5791180Z             {
2026-06-19T05:28:32.5791306Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5791404Z               "line": 4761
2026-06-19T05:28:32.5791508Z             }
2026-06-19T05:28:32.5791608Z           ]
2026-06-19T05:28:32.5791707Z         },
2026-06-19T05:28:32.5791811Z         "int": {
2026-06-19T05:28:32.5791930Z           "complete": false,
2026-06-19T05:28:32.5792036Z           "evidence": []
2026-06-19T05:28:32.5792126Z         },
2026-06-19T05:28:32.5792230Z         "unit": {
2026-06-19T05:28:32.5792341Z           "complete": true,
2026-06-19T05:28:32.5792454Z           "evidence": [
2026-06-19T05:28:32.5792545Z             {
2026-06-19T05:28:32.5792684Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5792793Z               "line": 9925
2026-06-19T05:28:32.5792885Z             },
2026-06-19T05:28:32.5792984Z             {
2026-06-19T05:28:32.5793098Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5793214Z               "line": 9999
2026-06-19T05:28:32.5793313Z             }
2026-06-19T05:28:32.5793418Z           ]
2026-06-19T05:28:32.5793519Z         }
2026-06-19T05:28:32.5793600Z       }
2026-06-19T05:28:32.5793699Z     },
2026-06-19T05:28:32.5793790Z     {
2026-06-19T05:28:32.5793910Z       "id": "REQ-SUBNET-5",
2026-06-19T05:28:32.5795132Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-19T05:28:32.5795265Z       "requiredStages": [
2026-06-19T05:28:32.5795369Z         "impl",
2026-06-19T05:28:32.5795475Z         "unit",
2026-06-19T05:28:32.5795580Z         "int"
2026-06-19T05:28:32.5795683Z       ],
2026-06-19T05:28:32.5795818Z       "stages": {
2026-06-19T05:28:32.5795928Z         "doc": {
2026-06-19T05:28:32.5796046Z           "complete": false,
2026-06-19T05:28:32.5796171Z           "evidence": []
2026-06-19T05:28:32.5796276Z         },
2026-06-19T05:28:32.5796381Z         "impl": {
2026-06-19T05:28:32.5796496Z           "complete": true,
2026-06-19T05:28:32.5796609Z           "evidence": [
2026-06-19T05:28:32.5796716Z             {
2026-06-19T05:28:32.5796862Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-19T05:28:32.5796970Z               "line": 128
2026-06-19T05:28:32.5797056Z             },
2026-06-19T05:28:32.5797160Z             {
2026-06-19T05:28:32.5797311Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-19T05:28:32.5797535Z               "line": 413
2026-06-19T05:28:32.5797635Z             },
2026-06-19T05:28:32.5797723Z             {
2026-06-19T05:28:32.5797869Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5797969Z               "line": 74
2026-06-19T05:28:32.5798075Z             },
2026-06-19T05:28:32.5798179Z             {
2026-06-19T05:28:32.5798323Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.5798508Z               "line": 332
2026-06-19T05:28:32.5798608Z             },
2026-06-19T05:28:32.5798751Z             {
2026-06-19T05:28:32.5798923Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.5799108Z               "line": 621
2026-06-19T05:28:32.5799219Z             },
2026-06-19T05:28:32.5799335Z             {
2026-06-19T05:28:32.5799529Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:28:32.5799645Z               "line": 31
2026-06-19T05:28:32.5799800Z             },
2026-06-19T05:28:32.5799900Z             {
2026-06-19T05:28:32.5800057Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:28:32.5800162Z               "line": 50
2026-06-19T05:28:32.5800262Z             },
2026-06-19T05:28:32.5800368Z             {
2026-06-19T05:28:32.5800514Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:28:32.5800625Z               "line": 69
2026-06-19T05:28:32.5800729Z             },
2026-06-19T05:28:32.5800834Z             {
2026-06-19T05:28:32.5800982Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:28:32.5801096Z               "line": 113
2026-06-19T05:28:32.5801197Z             },
2026-06-19T05:28:32.5801288Z             {
2026-06-19T05:28:32.5801445Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-19T05:28:32.5801551Z               "line": 25
2026-06-19T05:28:32.5801654Z             },
2026-06-19T05:28:32.5801754Z             {
2026-06-19T05:28:32.5801899Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-19T05:28:32.5802021Z               "line": 34
2026-06-19T05:28:32.5802125Z             },
2026-06-19T05:28:32.5802225Z             {
2026-06-19T05:28:32.5802376Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-19T05:28:32.5802481Z               "line": 17
2026-06-19T05:28:32.5802582Z             },
2026-06-19T05:28:32.5802686Z             {
2026-06-19T05:28:32.5802824Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5802934Z               "line": 4686
2026-06-19T05:28:32.5803038Z             },
2026-06-19T05:28:32.5803135Z             {
2026-06-19T05:28:32.5803263Z               "path": "crates/spt/src/wansend.rs",
2026-06-19T05:28:32.5803367Z               "line": 419
2026-06-19T05:28:32.5803473Z             }
2026-06-19T05:28:32.5803578Z           ]
2026-06-19T05:28:32.5803677Z         },
2026-06-19T05:28:32.5803784Z         "int": {
2026-06-19T05:28:32.5803902Z           "complete": true,
2026-06-19T05:28:32.5804001Z           "evidence": [
2026-06-19T05:28:32.5804103Z             {
2026-06-19T05:28:32.5804254Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.5804370Z               "line": 819
2026-06-19T05:28:32.5804470Z             }
2026-06-19T05:28:32.5804578Z           ]
2026-06-19T05:28:32.5804675Z         },
2026-06-19T05:28:32.5804780Z         "unit": {
2026-06-19T05:28:32.5804898Z           "complete": true,
2026-06-19T05:28:32.5805011Z           "evidence": [
2026-06-19T05:28:32.5805116Z             {
2026-06-19T05:28:32.5805261Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:28:32.5805377Z               "line": 341
2026-06-19T05:28:32.5805477Z             },
2026-06-19T05:28:32.5805581Z             {
2026-06-19T05:28:32.5805735Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-19T05:28:32.5805844Z               "line": 1115
2026-06-19T05:28:32.5805953Z             },
2026-06-19T05:28:32.5806054Z             {
2026-06-19T05:28:32.5806206Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-19T05:28:32.5806430Z               "line": 151
2026-06-19T05:28:32.5806530Z             },
2026-06-19T05:28:32.5806636Z             {
2026-06-19T05:28:32.5806792Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-19T05:28:32.5806897Z               "line": 61
2026-06-19T05:28:32.5806998Z             },
2026-06-19T05:28:32.5807183Z             {
2026-06-19T05:28:32.5807328Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-19T05:28:32.5807436Z               "line": 111
2026-06-19T05:28:32.5807540Z             },
2026-06-19T05:28:32.5807640Z             {
2026-06-19T05:28:32.5807790Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-19T05:28:32.5807895Z               "line": 138
2026-06-19T05:28:32.5808006Z             },
2026-06-19T05:28:32.5808114Z             {
2026-06-19T05:28:32.5808263Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-19T05:28:32.5808378Z               "line": 148
2026-06-19T05:28:32.5808486Z             },
2026-06-19T05:28:32.5808588Z             {
2026-06-19T05:28:32.5808711Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5808830Z               "line": 9826
2026-06-19T05:28:32.5808931Z             }
2026-06-19T05:28:32.5809116Z           ]
2026-06-19T05:28:32.5809232Z         }
2026-06-19T05:28:32.5809335Z       }
2026-06-19T05:28:32.5809445Z     },
2026-06-19T05:28:32.5809546Z     {
2026-06-19T05:28:32.5809668Z       "id": "REQ-SUBNET-6",
2026-06-19T05:28:32.5810388Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-19T05:28:32.5810508Z       "requiredStages": [
2026-06-19T05:28:32.5810613Z         "impl",
2026-06-19T05:28:32.5810722Z         "unit"
2026-06-19T05:28:32.5810822Z       ],
2026-06-19T05:28:32.5810928Z       "stages": {
2026-06-19T05:28:32.5811027Z         "doc": {
2026-06-19T05:28:32.5811147Z           "complete": false,
2026-06-19T05:28:32.5811252Z           "evidence": []
2026-06-19T05:28:32.5811356Z         },
2026-06-19T05:28:32.5811462Z         "impl": {
2026-06-19T05:28:32.5811580Z           "complete": true,
2026-06-19T05:28:32.5811695Z           "evidence": [
2026-06-19T05:28:32.5811796Z             {
2026-06-19T05:28:32.5811947Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5812058Z               "line": 254
2026-06-19T05:28:32.5812158Z             },
2026-06-19T05:28:32.5812257Z             {
2026-06-19T05:28:32.5812387Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5812510Z               "line": 4344
2026-06-19T05:28:32.5812610Z             },
2026-06-19T05:28:32.5812718Z             {
2026-06-19T05:28:32.5812841Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5812955Z               "line": 4361
2026-06-19T05:28:32.5813055Z             },
2026-06-19T05:28:32.5813166Z             {
2026-06-19T05:28:32.5813293Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5813404Z               "line": 4414
2026-06-19T05:28:32.5813508Z             },
2026-06-19T05:28:32.5813603Z             {
2026-06-19T05:28:32.5813733Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5813842Z               "line": 4437
2026-06-19T05:28:32.5813941Z             }
2026-06-19T05:28:32.5814048Z           ]
2026-06-19T05:28:32.5814152Z         },
2026-06-19T05:28:32.5814261Z         "int": {
2026-06-19T05:28:32.5814377Z           "complete": false,
2026-06-19T05:28:32.5814476Z           "evidence": []
2026-06-19T05:28:32.5814580Z         },
2026-06-19T05:28:32.5814687Z         "unit": {
2026-06-19T05:28:32.5814810Z           "complete": true,
2026-06-19T05:28:32.5814910Z           "evidence": [
2026-06-19T05:28:32.5815011Z             {
2026-06-19T05:28:32.5815139Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5815359Z               "line": 9840
2026-06-19T05:28:32.5815458Z             },
2026-06-19T05:28:32.5815557Z             {
2026-06-19T05:28:32.5815695Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5815794Z               "line": 9873
2026-06-19T05:28:32.5815903Z             },
2026-06-19T05:28:32.5816004Z             {
2026-06-19T05:28:32.5816132Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5816347Z               "line": 9882
2026-06-19T05:28:32.5816456Z             }
2026-06-19T05:28:32.5816567Z           ]
2026-06-19T05:28:32.5816667Z         }
2026-06-19T05:28:32.5816780Z       }
2026-06-19T05:28:32.5816876Z     },
2026-06-19T05:28:32.5816986Z     {
2026-06-19T05:28:32.5817095Z       "id": "REQ-SUBNET-7",
2026-06-19T05:28:32.5818756Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-19T05:28:32.5818895Z       "requiredStages": [
2026-06-19T05:28:32.5819089Z         "impl",
2026-06-19T05:28:32.5819200Z         "unit"
2026-06-19T05:28:32.5819309Z       ],
2026-06-19T05:28:32.5819414Z       "stages": {
2026-06-19T05:28:32.5819519Z         "doc": {
2026-06-19T05:28:32.5819634Z           "complete": false,
2026-06-19T05:28:32.5819738Z           "evidence": []
2026-06-19T05:28:32.5819844Z         },
2026-06-19T05:28:32.5819949Z         "impl": {
2026-06-19T05:28:32.5820053Z           "complete": true,
2026-06-19T05:28:32.5820159Z           "evidence": [
2026-06-19T05:28:32.5820253Z             {
2026-06-19T05:28:32.5820398Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-19T05:28:32.5820525Z               "line": 17
2026-06-19T05:28:32.5820620Z             },
2026-06-19T05:28:32.5820727Z             {
2026-06-19T05:28:32.5820877Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5820986Z               "line": 103
2026-06-19T05:28:32.5821092Z             },
2026-06-19T05:28:32.5821197Z             {
2026-06-19T05:28:32.5821349Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-19T05:28:32.5821454Z               "line": 312
2026-06-19T05:28:32.5821554Z             },
2026-06-19T05:28:32.5821654Z             {
2026-06-19T05:28:32.5821812Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-19T05:28:32.5821921Z               "line": 131
2026-06-19T05:28:32.5822017Z             },
2026-06-19T05:28:32.5822112Z             {
2026-06-19T05:28:32.5822269Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5822375Z               "line": 160
2026-06-19T05:28:32.5822489Z             },
2026-06-19T05:28:32.5822579Z             {
2026-06-19T05:28:32.5822732Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5822841Z               "line": 447
2026-06-19T05:28:32.5822937Z             },
2026-06-19T05:28:32.5823033Z             {
2026-06-19T05:28:32.5823179Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5823293Z               "line": 670
2026-06-19T05:28:32.5823388Z             },
2026-06-19T05:28:32.5823491Z             {
2026-06-19T05:28:32.5823639Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5823749Z               "line": 710
2026-06-19T05:28:32.5823849Z             },
2026-06-19T05:28:32.5823954Z             {
2026-06-19T05:28:32.5824111Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5824211Z               "line": 766
2026-06-19T05:28:32.5824321Z             },
2026-06-19T05:28:32.5824421Z             {
2026-06-19T05:28:32.5824712Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5824817Z               "line": 136
2026-06-19T05:28:32.5824923Z             },
2026-06-19T05:28:32.5825017Z             {
2026-06-19T05:28:32.5825150Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5825266Z               "line": 139
2026-06-19T05:28:32.5825360Z             }
2026-06-19T05:28:32.5825562Z           ]
2026-06-19T05:28:32.5825655Z         },
2026-06-19T05:28:32.5825752Z         "int": {
2026-06-19T05:28:32.5825877Z           "complete": false,
2026-06-19T05:28:32.5825984Z           "evidence": []
2026-06-19T05:28:32.5826093Z         },
2026-06-19T05:28:32.5826199Z         "unit": {
2026-06-19T05:28:32.5826315Z           "complete": true,
2026-06-19T05:28:32.5826424Z           "evidence": [
2026-06-19T05:28:32.5826511Z             {
2026-06-19T05:28:32.5826659Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-19T05:28:32.5826759Z               "line": 136
2026-06-19T05:28:32.5826855Z             },
2026-06-19T05:28:32.5826959Z             {
2026-06-19T05:28:32.5827107Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-19T05:28:32.5827222Z               "line": 156
2026-06-19T05:28:32.5827326Z             },
2026-06-19T05:28:32.5827427Z             {
2026-06-19T05:28:32.5827574Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5827688Z               "line": 987
2026-06-19T05:28:32.5827790Z             },
2026-06-19T05:28:32.5827894Z             {
2026-06-19T05:28:32.5828052Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-19T05:28:32.5828162Z               "line": 1009
2026-06-19T05:28:32.5828270Z             },
2026-06-19T05:28:32.5828371Z             {
2026-06-19T05:28:32.5828916Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-19T05:28:32.5829112Z               "line": 1419
2026-06-19T05:28:32.5829211Z             },
2026-06-19T05:28:32.5829335Z             {
2026-06-19T05:28:32.5829493Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-19T05:28:32.5829606Z               "line": 1036
2026-06-19T05:28:32.5829703Z             }
2026-06-19T05:28:32.5829807Z           ]
2026-06-19T05:28:32.5829912Z         }
2026-06-19T05:28:32.5830013Z       }
2026-06-19T05:28:32.5830113Z     },
2026-06-19T05:28:32.5830212Z     {
2026-06-19T05:28:32.5830342Z       "id": "REQ-SUBNET-8",
2026-06-19T05:28:32.5831456Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-19T05:28:32.5831585Z       "requiredStages": [
2026-06-19T05:28:32.5831705Z         "impl",
2026-06-19T05:28:32.5831794Z         "unit"
2026-06-19T05:28:32.5831894Z       ],
2026-06-19T05:28:32.5832000Z       "stages": {
2026-06-19T05:28:32.5832109Z         "doc": {
2026-06-19T05:28:32.5832214Z           "complete": false,
2026-06-19T05:28:32.5832334Z           "evidence": []
2026-06-19T05:28:32.5832438Z         },
2026-06-19T05:28:32.5832543Z         "impl": {
2026-06-19T05:28:32.5832654Z           "complete": true,
2026-06-19T05:28:32.5832762Z           "evidence": [
2026-06-19T05:28:32.5832873Z             {
2026-06-19T05:28:32.5833001Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5833110Z               "line": 3711
2026-06-19T05:28:32.5833216Z             },
2026-06-19T05:28:32.5833321Z             {
2026-06-19T05:28:32.5833449Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5833565Z               "line": 3740
2026-06-19T05:28:32.5833663Z             },
2026-06-19T05:28:32.5833749Z             {
2026-06-19T05:28:32.5833882Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5834004Z               "line": 3757
2026-06-19T05:28:32.5834219Z             },
2026-06-19T05:28:32.5834328Z             {
2026-06-19T05:28:32.5834452Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5834562Z               "line": 3780
2026-06-19T05:28:32.5834666Z             },
2026-06-19T05:28:32.5834771Z             {
2026-06-19T05:28:32.5834900Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5835101Z               "line": 4194
2026-06-19T05:28:32.5835201Z             }
2026-06-19T05:28:32.5835291Z           ]
2026-06-19T05:28:32.5835396Z         },
2026-06-19T05:28:32.5835497Z         "int": {
2026-06-19T05:28:32.5835616Z           "complete": false,
2026-06-19T05:28:32.5835720Z           "evidence": []
2026-06-19T05:28:32.5835822Z         },
2026-06-19T05:28:32.5835930Z         "unit": {
2026-06-19T05:28:32.5836060Z           "complete": true,
2026-06-19T05:28:32.5836192Z           "evidence": [
2026-06-19T05:28:32.5836288Z             {
2026-06-19T05:28:32.5836408Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5836516Z               "line": 10030
2026-06-19T05:28:32.5836616Z             },
2026-06-19T05:28:32.5836720Z             {
2026-06-19T05:28:32.5836848Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5836961Z               "line": 10046
2026-06-19T05:28:32.5837062Z             }
2026-06-19T05:28:32.5837172Z           ]
2026-06-19T05:28:32.5837266Z         }
2026-06-19T05:28:32.5837367Z       }
2026-06-19T05:28:32.5837462Z     },
2026-06-19T05:28:32.5837562Z     {
2026-06-19T05:28:32.5837682Z       "id": "REQ-TERM-1",
2026-06-19T05:28:32.5837881Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-19T05:28:32.5838011Z       "requiredStages": [
2026-06-19T05:28:32.5838120Z         "impl",
2026-06-19T05:28:32.5838220Z         "unit"
2026-06-19T05:28:32.5838331Z       ],
2026-06-19T05:28:32.5838435Z       "stages": {
2026-06-19T05:28:32.5838549Z         "doc": {
2026-06-19T05:28:32.5838665Z           "complete": false,
2026-06-19T05:28:32.5838778Z           "evidence": []
2026-06-19T05:28:32.5838888Z         },
2026-06-19T05:28:32.5839074Z         "impl": {
2026-06-19T05:28:32.5839187Z           "complete": true,
2026-06-19T05:28:32.5839292Z           "evidence": [
2026-06-19T05:28:32.5839424Z             {
2026-06-19T05:28:32.5839609Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:28:32.5839729Z               "line": 59
2026-06-19T05:28:32.5839837Z             },
2026-06-19T05:28:32.5839929Z             {
2026-06-19T05:28:32.5840077Z               "path": "crates/spt-term/src/pty.rs",
2026-06-19T05:28:32.5840181Z               "line": 234
2026-06-19T05:28:32.5840282Z             },
2026-06-19T05:28:32.5840382Z             {
2026-06-19T05:28:32.5840530Z               "path": "crates/spt-term/src/surface.rs",
2026-06-19T05:28:32.5840649Z               "line": 100
2026-06-19T05:28:32.5840749Z             }
2026-06-19T05:28:32.5840859Z           ]
2026-06-19T05:28:32.5840959Z         },
2026-06-19T05:28:32.5841069Z         "int": {
2026-06-19T05:28:32.5841188Z           "complete": false,
2026-06-19T05:28:32.5841307Z           "evidence": []
2026-06-19T05:28:32.5841416Z         },
2026-06-19T05:28:32.5841518Z         "unit": {
2026-06-19T05:28:32.5841636Z           "complete": true,
2026-06-19T05:28:32.5841741Z           "evidence": [
2026-06-19T05:28:32.5841852Z             {
2026-06-19T05:28:32.5841997Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-19T05:28:32.5842121Z               "line": 24
2026-06-19T05:28:32.5842222Z             },
2026-06-19T05:28:32.5842326Z             {
2026-06-19T05:28:32.5842474Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-19T05:28:32.5842584Z               "line": 56
2026-06-19T05:28:32.5842679Z             }
2026-06-19T05:28:32.5842779Z           ]
2026-06-19T05:28:32.5842880Z         }
2026-06-19T05:28:32.5842984Z       }
2026-06-19T05:28:32.5843089Z     },
2026-06-19T05:28:32.5843194Z     {
2026-06-19T05:28:32.5843304Z       "id": "REQ-TERM-2",
2026-06-19T05:28:32.5843614Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-19T05:28:32.5843728Z       "requiredStages": [
2026-06-19T05:28:32.5843838Z         "impl",
2026-06-19T05:28:32.5843947Z         "unit"
2026-06-19T05:28:32.5844048Z       ],
2026-06-19T05:28:32.5844149Z       "stages": {
2026-06-19T05:28:32.5844242Z         "doc": {
2026-06-19T05:28:32.5844461Z           "complete": false,
2026-06-19T05:28:32.5844564Z           "evidence": []
2026-06-19T05:28:32.5844668Z         },
2026-06-19T05:28:32.5844769Z         "impl": {
2026-06-19T05:28:32.5844874Z           "complete": true,
2026-06-19T05:28:32.5844988Z           "evidence": [
2026-06-19T05:28:32.5845084Z             {
2026-06-19T05:28:32.5845231Z               "path": "crates/spt-term/src/surface.rs",
2026-06-19T05:28:32.5845341Z               "line": 117
2026-06-19T05:28:32.5845437Z             },
2026-06-19T05:28:32.5845541Z             {
2026-06-19T05:28:32.5845680Z               "path": "crates/spt-term/src/surface.rs",
2026-06-19T05:28:32.5845804Z               "line": 127
2026-06-19T05:28:32.5845903Z             }
2026-06-19T05:28:32.5846009Z           ]
2026-06-19T05:28:32.5846109Z         },
2026-06-19T05:28:32.5846218Z         "int": {
2026-06-19T05:28:32.5846334Z           "complete": false,
2026-06-19T05:28:32.5846452Z           "evidence": []
2026-06-19T05:28:32.5846557Z         },
2026-06-19T05:28:32.5846663Z         "unit": {
2026-06-19T05:28:32.5846780Z           "complete": true,
2026-06-19T05:28:32.5846891Z           "evidence": [
2026-06-19T05:28:32.5846997Z             {
2026-06-19T05:28:32.5847147Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-19T05:28:32.5847257Z               "line": 46
2026-06-19T05:28:32.5847366Z             },
2026-06-19T05:28:32.5847464Z             {
2026-06-19T05:28:32.5847612Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-19T05:28:32.5847723Z               "line": 77
2026-06-19T05:28:32.5847822Z             }
2026-06-19T05:28:32.5847922Z           ]
2026-06-19T05:28:32.5848027Z         }
2026-06-19T05:28:32.5848131Z       }
2026-06-19T05:28:32.5848233Z     },
2026-06-19T05:28:32.5848337Z     {
2026-06-19T05:28:32.5848446Z       "id": "REQ-TERM-3",
2026-06-19T05:28:32.5848615Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-19T05:28:32.5848733Z       "requiredStages": [
2026-06-19T05:28:32.5848837Z         "impl",
2026-06-19T05:28:32.5848939Z         "unit"
2026-06-19T05:28:32.5849119Z       ],
2026-06-19T05:28:32.5849230Z       "stages": {
2026-06-19T05:28:32.5849333Z         "doc": {
2026-06-19T05:28:32.5851724Z           "complete": false,
2026-06-19T05:28:32.5851867Z           "evidence": []
2026-06-19T05:28:32.5851972Z         },
2026-06-19T05:28:32.5852083Z         "impl": {
2026-06-19T05:28:32.5852191Z           "complete": true,
2026-06-19T05:28:32.5852301Z           "evidence": [
2026-06-19T05:28:32.5852402Z             {
2026-06-19T05:28:32.5852557Z               "path": "crates/spt-term/src/stream.rs",
2026-06-19T05:28:32.5852686Z               "line": 71
2026-06-19T05:28:32.5852787Z             }
2026-06-19T05:28:32.5852891Z           ]
2026-06-19T05:28:32.5852986Z         },
2026-06-19T05:28:32.5853087Z         "int": {
2026-06-19T05:28:32.5853206Z           "complete": false,
2026-06-19T05:28:32.5853315Z           "evidence": []
2026-06-19T05:28:32.5853421Z         },
2026-06-19T05:28:32.5853530Z         "unit": {
2026-06-19T05:28:32.5853649Z           "complete": true,
2026-06-19T05:28:32.5853759Z           "evidence": [
2026-06-19T05:28:32.5853855Z             {
2026-06-19T05:28:32.5854003Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-19T05:28:32.5854107Z               "line": 37
2026-06-19T05:28:32.5854217Z             },
2026-06-19T05:28:32.5854318Z             {
2026-06-19T05:28:32.5854460Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-19T05:28:32.5854569Z               "line": 67
2026-06-19T05:28:32.5854675Z             }
2026-06-19T05:28:32.5854774Z           ]
2026-06-19T05:28:32.5855007Z         }
2026-06-19T05:28:32.5855106Z       }
2026-06-19T05:28:32.5855205Z     },
2026-06-19T05:28:32.5855305Z     {
2026-06-19T05:28:32.5855425Z       "id": "REQ-TERM-4",
2026-06-19T05:28:32.5855940Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-19T05:28:32.5856168Z       "requiredStages": [
2026-06-19T05:28:32.5856274Z         "impl",
2026-06-19T05:28:32.5856383Z         "unit",
2026-06-19T05:28:32.5856482Z         "int"
2026-06-19T05:28:32.5856584Z       ],
2026-06-19T05:28:32.5856688Z       "stages": {
2026-06-19T05:28:32.5856797Z         "doc": {
2026-06-19T05:28:32.5856913Z           "complete": false,
2026-06-19T05:28:32.5857017Z           "evidence": []
2026-06-19T05:28:32.5857107Z         },
2026-06-19T05:28:32.5857313Z         "impl": {
2026-06-19T05:28:32.5857422Z           "complete": true,
2026-06-19T05:28:32.5857524Z           "evidence": [
2026-06-19T05:28:32.5857637Z             {
2026-06-19T05:28:32.5857783Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5857888Z               "line": 37
2026-06-19T05:28:32.5857987Z             },
2026-06-19T05:28:32.5858091Z             {
2026-06-19T05:28:32.5858244Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:28:32.5858353Z               "line": 25
2026-06-19T05:28:32.5858458Z             },
2026-06-19T05:28:32.5858559Z             {
2026-06-19T05:28:32.5858715Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:28:32.5858879Z               "line": 114
2026-06-19T05:28:32.5859059Z             },
2026-06-19T05:28:32.5859165Z             {
2026-06-19T05:28:32.5859316Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:28:32.5859422Z               "line": 267
2026-06-19T05:28:32.5859527Z             },
2026-06-19T05:28:32.5859627Z             {
2026-06-19T05:28:32.5859775Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:28:32.5859884Z               "line": 289
2026-06-19T05:28:32.5859984Z             },
2026-06-19T05:28:32.5860081Z             {
2026-06-19T05:28:32.5860222Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:28:32.5860317Z               "line": 307
2026-06-19T05:28:32.5860427Z             },
2026-06-19T05:28:32.5860539Z             {
2026-06-19T05:28:32.5860686Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:28:32.5860792Z               "line": 33
2026-06-19T05:28:32.5860896Z             },
2026-06-19T05:28:32.5860991Z             {
2026-06-19T05:28:32.5861140Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5861254Z               "line": 52
2026-06-19T05:28:32.5861345Z             },
2026-06-19T05:28:32.5861445Z             {
2026-06-19T05:28:32.5861587Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5861689Z               "line": 180
2026-06-19T05:28:32.5861797Z             },
2026-06-19T05:28:32.5861888Z             {
2026-06-19T05:28:32.5862033Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5862141Z               "line": 190
2026-06-19T05:28:32.5862251Z             },
2026-06-19T05:28:32.5862352Z             {
2026-06-19T05:28:32.5862494Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5862604Z               "line": 250
2026-06-19T05:28:32.5862709Z             },
2026-06-19T05:28:32.5862808Z             {
2026-06-19T05:28:32.5862952Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5863061Z               "line": 280
2026-06-19T05:28:32.5863165Z             },
2026-06-19T05:28:32.5863265Z             {
2026-06-19T05:28:32.5863409Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5863517Z               "line": 291
2026-06-19T05:28:32.5863609Z             },
2026-06-19T05:28:32.5863704Z             {
2026-06-19T05:28:32.5863828Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5864052Z               "line": 1184
2026-06-19T05:28:32.5864157Z             }
2026-06-19T05:28:32.5864253Z           ]
2026-06-19T05:28:32.5864358Z         },
2026-06-19T05:28:32.5864452Z         "int": {
2026-06-19T05:28:32.5864563Z           "complete": true,
2026-06-19T05:28:32.5864672Z           "evidence": [
2026-06-19T05:28:32.5864873Z             {
2026-06-19T05:28:32.5865020Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-19T05:28:32.5865129Z               "line": 18
2026-06-19T05:28:32.5865236Z             }
2026-06-19T05:28:32.5865334Z           ]
2026-06-19T05:28:32.5865443Z         },
2026-06-19T05:28:32.5865544Z         "unit": {
2026-06-19T05:28:32.5865661Z           "complete": true,
2026-06-19T05:28:32.5865774Z           "evidence": [
2026-06-19T05:28:32.5865875Z             {
2026-06-19T05:28:32.5866023Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5866132Z               "line": 364
2026-06-19T05:28:32.5866248Z             },
2026-06-19T05:28:32.5866347Z             {
2026-06-19T05:28:32.5866486Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5866595Z               "line": 416
2026-06-19T05:28:32.5866690Z             },
2026-06-19T05:28:32.5866791Z             {
2026-06-19T05:28:32.5866929Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5867038Z               "line": 426
2026-06-19T05:28:32.5867144Z             },
2026-06-19T05:28:32.5867248Z             {
2026-06-19T05:28:32.5867396Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:28:32.5867511Z               "line": 436
2026-06-19T05:28:32.5867605Z             },
2026-06-19T05:28:32.5867701Z             {
2026-06-19T05:28:32.5867850Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:28:32.5867959Z               "line": 456
2026-06-19T05:28:32.5868060Z             },
2026-06-19T05:28:32.5868160Z             {
2026-06-19T05:28:32.5868306Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:28:32.5868416Z               "line": 478
2026-06-19T05:28:32.5868519Z             },
2026-06-19T05:28:32.5868627Z             {
2026-06-19T05:28:32.5868766Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:28:32.5868885Z               "line": 491
2026-06-19T05:28:32.5869057Z             },
2026-06-19T05:28:32.5869157Z             {
2026-06-19T05:28:32.5869304Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-19T05:28:32.5869415Z               "line": 502
2026-06-19T05:28:32.5869515Z             },
2026-06-19T05:28:32.5869614Z             {
2026-06-19T05:28:32.5869763Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:28:32.5869872Z               "line": 108
2026-06-19T05:28:32.5869972Z             },
2026-06-19T05:28:32.5870083Z             {
2026-06-19T05:28:32.5870215Z               "path": "crates/spt-term/src/digest.rs",
2026-06-19T05:28:32.5870321Z               "line": 119
2026-06-19T05:28:32.5870426Z             },
2026-06-19T05:28:32.5870525Z             {
2026-06-19T05:28:32.5870655Z               "path": "crates/spt-term/src/digest.rs",
2026-06-19T05:28:32.5870764Z               "line": 127
2026-06-19T05:28:32.5870863Z             },
2026-06-19T05:28:32.5870958Z             {
2026-06-19T05:28:32.5871104Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5871213Z               "line": 474
2026-06-19T05:28:32.5871314Z             },
2026-06-19T05:28:32.5871415Z             {
2026-06-19T05:28:32.5871547Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5871653Z               "line": 501
2026-06-19T05:28:32.5871748Z             },
2026-06-19T05:28:32.5871852Z             {
2026-06-19T05:28:32.5871982Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5872095Z               "line": 520
2026-06-19T05:28:32.5872200Z             },
2026-06-19T05:28:32.5872297Z             {
2026-06-19T05:28:32.5872549Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5872658Z               "line": 535
2026-06-19T05:28:32.5872758Z             },
2026-06-19T05:28:32.5872864Z             {
2026-06-19T05:28:32.5873015Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5873116Z               "line": 561
2026-06-19T05:28:32.5873311Z             },
2026-06-19T05:28:32.5873416Z             {
2026-06-19T05:28:32.5873556Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5873659Z               "line": 581
2026-06-19T05:28:32.5873754Z             },
2026-06-19T05:28:32.5873859Z             {
2026-06-19T05:28:32.5873992Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5874101Z               "line": 591
2026-06-19T05:28:32.5874208Z             },
2026-06-19T05:28:32.5874307Z             {
2026-06-19T05:28:32.5874455Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5874569Z               "line": 683
2026-06-19T05:28:32.5874674Z             },
2026-06-19T05:28:32.5874779Z             {
2026-06-19T05:28:32.5874918Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5875027Z               "line": 881
2026-06-19T05:28:32.5875128Z             },
2026-06-19T05:28:32.5875223Z             {
2026-06-19T05:28:32.5875356Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5875467Z               "line": 9597
2026-06-19T05:28:32.5875575Z             }
2026-06-19T05:28:32.5875671Z           ]
2026-06-19T05:28:32.5875777Z         }
2026-06-19T05:28:32.5875875Z       }
2026-06-19T05:28:32.5875975Z     },
2026-06-19T05:28:32.5876075Z     {
2026-06-19T05:28:32.5876179Z       "id": "REQ-TERM-5",
2026-06-19T05:28:32.5877732Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-19T05:28:32.5877847Z       "requiredStages": [
2026-06-19T05:28:32.5877956Z         "doc",
2026-06-19T05:28:32.5878062Z         "impl",
2026-06-19T05:28:32.5878161Z         "unit",
2026-06-19T05:28:32.5878266Z         "int"
2026-06-19T05:28:32.5878362Z       ],
2026-06-19T05:28:32.5878471Z       "stages": {
2026-06-19T05:28:32.5878576Z         "doc": {
2026-06-19T05:28:32.5878691Z           "complete": true,
2026-06-19T05:28:32.5878809Z           "evidence": [
2026-06-19T05:28:32.5878908Z             {
2026-06-19T05:28:32.5879121Z               "path": "docs/MANIFEST.md",
2026-06-19T05:28:32.5879230Z               "line": 189
2026-06-19T05:28:32.5879336Z             }
2026-06-19T05:28:32.5879436Z           ]
2026-06-19T05:28:32.5879540Z         },
2026-06-19T05:28:32.5879651Z         "impl": {
2026-06-19T05:28:32.5879756Z           "complete": true,
2026-06-19T05:28:32.5879864Z           "evidence": [
2026-06-19T05:28:32.5879966Z             {
2026-06-19T05:28:32.5880108Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5880208Z               "line": 75
2026-06-19T05:28:32.5880314Z             },
2026-06-19T05:28:32.5880418Z             {
2026-06-19T05:28:32.5880557Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5880666Z               "line": 131
2026-06-19T05:28:32.5880766Z             },
2026-06-19T05:28:32.5880867Z             {
2026-06-19T05:28:32.5881000Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:28:32.5881114Z               "line": 22
2026-06-19T05:28:32.5881220Z             },
2026-06-19T05:28:32.5881320Z             {
2026-06-19T05:28:32.5881575Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:28:32.5881679Z               "line": 87
2026-06-19T05:28:32.5881783Z             },
2026-06-19T05:28:32.5881883Z             {
2026-06-19T05:28:32.5882017Z               "path": "crates/spt-term/src/digest.rs",
2026-06-19T05:28:32.5882121Z               "line": 30
2026-06-19T05:28:32.5882223Z             },
2026-06-19T05:28:32.5882412Z             {
2026-06-19T05:28:32.5882566Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5882679Z               "line": 103
2026-06-19T05:28:32.5882780Z             },
2026-06-19T05:28:32.5882880Z             {
2026-06-19T05:28:32.5883022Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5883128Z               "line": 167
2026-06-19T05:28:32.5883228Z             },
2026-06-19T05:28:32.5883323Z             {
2026-06-19T05:28:32.5883472Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5883585Z               "line": 434
2026-06-19T05:28:32.5883681Z             },
2026-06-19T05:28:32.5883777Z             {
2026-06-19T05:28:32.5883904Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5884015Z               "line": 5507
2026-06-19T05:28:32.5884116Z             },
2026-06-19T05:28:32.5884214Z             {
2026-06-19T05:28:32.5884342Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5884458Z               "line": 5814
2026-06-19T05:28:32.5884562Z             }
2026-06-19T05:28:32.5884648Z           ]
2026-06-19T05:28:32.5884748Z         },
2026-06-19T05:28:32.5884849Z         "int": {
2026-06-19T05:28:32.5884957Z           "complete": true,
2026-06-19T05:28:32.5885078Z           "evidence": [
2026-06-19T05:28:32.5885163Z             {
2026-06-19T05:28:32.5885339Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-19T05:28:32.5885449Z               "line": 17
2026-06-19T05:28:32.5885558Z             }
2026-06-19T05:28:32.5885644Z           ]
2026-06-19T05:28:32.5885755Z         },
2026-06-19T05:28:32.5885859Z         "unit": {
2026-06-19T05:28:32.5885974Z           "complete": true,
2026-06-19T05:28:32.5886088Z           "evidence": [
2026-06-19T05:28:32.5886188Z             {
2026-06-19T05:28:32.5886332Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5886440Z               "line": 375
2026-06-19T05:28:32.5886544Z             },
2026-06-19T05:28:32.5886649Z             {
2026-06-19T05:28:32.5886786Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:28:32.5886889Z               "line": 162
2026-06-19T05:28:32.5886981Z             },
2026-06-19T05:28:32.5887082Z             {
2026-06-19T05:28:32.5887218Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:28:32.5887325Z               "line": 179
2026-06-19T05:28:32.5887420Z             },
2026-06-19T05:28:32.5887519Z             {
2026-06-19T05:28:32.5887658Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:28:32.5887767Z               "line": 201
2026-06-19T05:28:32.5887872Z             },
2026-06-19T05:28:32.5887973Z             {
2026-06-19T05:28:32.5888116Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:28:32.5888221Z               "line": 212
2026-06-19T05:28:32.5888321Z             },
2026-06-19T05:28:32.5888425Z             {
2026-06-19T05:28:32.5888565Z               "path": "crates/spt-live/src/digest.rs",
2026-06-19T05:28:32.5888683Z               "line": 223
2026-06-19T05:28:32.5888774Z             },
2026-06-19T05:28:32.5888880Z             {
2026-06-19T05:28:32.5889103Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.5889214Z               "line": 1322
2026-06-19T05:28:32.5889322Z             },
2026-06-19T05:28:32.5889416Z             {
2026-06-19T05:28:32.5889569Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.5889676Z               "line": 1365
2026-06-19T05:28:32.5889776Z             },
2026-06-19T05:28:32.5889877Z             {
2026-06-19T05:28:32.5890139Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5890245Z               "line": 606
2026-06-19T05:28:32.5890348Z             },
2026-06-19T05:28:32.5890453Z             {
2026-06-19T05:28:32.5890602Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5890706Z               "line": 634
2026-06-19T05:28:32.5890907Z             },
2026-06-19T05:28:32.5891012Z             {
2026-06-19T05:28:32.5891151Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5891255Z               "line": 646
2026-06-19T05:28:32.5891359Z             },
2026-06-19T05:28:32.5891456Z             {
2026-06-19T05:28:32.5891607Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5891708Z               "line": 669
2026-06-19T05:28:32.5891804Z             },
2026-06-19T05:28:32.5891912Z             {
2026-06-19T05:28:32.5892035Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5892150Z               "line": 8308
2026-06-19T05:28:32.5892258Z             },
2026-06-19T05:28:32.5892362Z             {
2026-06-19T05:28:32.5892491Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5892600Z               "line": 8366
2026-06-19T05:28:32.5892710Z             }
2026-06-19T05:28:32.5892811Z           ]
2026-06-19T05:28:32.5892915Z         }
2026-06-19T05:28:32.5893025Z       }
2026-06-19T05:28:32.5893126Z     },
2026-06-19T05:28:32.5893230Z     {
2026-06-19T05:28:32.5893340Z       "id": "REQ-TERM-6",
2026-06-19T05:28:32.5894551Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-19T05:28:32.5894671Z       "requiredStages": [
2026-06-19T05:28:32.5894775Z         "impl",
2026-06-19T05:28:32.5894879Z         "unit",
2026-06-19T05:28:32.5894974Z         "int"
2026-06-19T05:28:32.5895085Z       ],
2026-06-19T05:28:32.5895193Z       "stages": {
2026-06-19T05:28:32.5895294Z         "doc": {
2026-06-19T05:28:32.5895414Z           "complete": false,
2026-06-19T05:28:32.5895517Z           "evidence": []
2026-06-19T05:28:32.5895628Z         },
2026-06-19T05:28:32.5895733Z         "impl": {
2026-06-19T05:28:32.5895842Z           "complete": true,
2026-06-19T05:28:32.5895948Z           "evidence": [
2026-06-19T05:28:32.5896052Z             {
2026-06-19T05:28:32.5896204Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5896310Z               "line": 132
2026-06-19T05:28:32.5896419Z             },
2026-06-19T05:28:32.5896514Z             {
2026-06-19T05:28:32.5896667Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5896781Z               "line": 187
2026-06-19T05:28:32.5896887Z             },
2026-06-19T05:28:32.5896996Z             {
2026-06-19T05:28:32.5897142Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:28:32.5897257Z               "line": 17
2026-06-19T05:28:32.5897355Z             },
2026-06-19T05:28:32.5897464Z             {
2026-06-19T05:28:32.5897613Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:28:32.5897731Z               "line": 96
2026-06-19T05:28:32.5897832Z             },
2026-06-19T05:28:32.5897933Z             {
2026-06-19T05:28:32.5898084Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5898191Z               "line": 319
2026-06-19T05:28:32.5898295Z             },
2026-06-19T05:28:32.5898404Z             {
2026-06-19T05:28:32.5898548Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5898656Z               "line": 396
2026-06-19T05:28:32.5898761Z             }
2026-06-19T05:28:32.5898862Z           ]
2026-06-19T05:28:32.5899038Z         },
2026-06-19T05:28:32.5899253Z         "int": {
2026-06-19T05:28:32.5899377Z           "complete": true,
2026-06-19T05:28:32.5899483Z           "evidence": [
2026-06-19T05:28:32.5899586Z             {
2026-06-19T05:28:32.5899764Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-19T05:28:32.5899868Z               "line": 18
2026-06-19T05:28:32.5899967Z             }
2026-06-19T05:28:32.5900171Z           ]
2026-06-19T05:28:32.5900265Z         },
2026-06-19T05:28:32.5900360Z         "unit": {
2026-06-19T05:28:32.5900480Z           "complete": true,
2026-06-19T05:28:32.5900594Z           "evidence": [
2026-06-19T05:28:32.5900694Z             {
2026-06-19T05:28:32.5900838Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:28:32.5900947Z               "line": 126
2026-06-19T05:28:32.5901048Z             },
2026-06-19T05:28:32.5901143Z             {
2026-06-19T05:28:32.5901294Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:28:32.5901405Z               "line": 141
2026-06-19T05:28:32.5901510Z             },
2026-06-19T05:28:32.5901604Z             {
2026-06-19T05:28:32.5901744Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:28:32.5901848Z               "line": 157
2026-06-19T05:28:32.5901958Z             },
2026-06-19T05:28:32.5902063Z             {
2026-06-19T05:28:32.5902191Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-19T05:28:32.5902307Z               "line": 175
2026-06-19T05:28:32.5902412Z             },
2026-06-19T05:28:32.5902515Z             {
2026-06-19T05:28:32.5902658Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5902766Z               "line": 738
2026-06-19T05:28:32.5902893Z             },
2026-06-19T05:28:32.5903018Z             {
2026-06-19T05:28:32.5903179Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5903290Z               "line": 759
2026-06-19T05:28:32.5903390Z             },
2026-06-19T05:28:32.5903490Z             {
2026-06-19T05:28:32.5903638Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-19T05:28:32.5903800Z               "line": 722
2026-06-19T05:28:32.5903895Z             }
2026-06-19T05:28:32.5903991Z           ]
2026-06-19T05:28:32.5904086Z         }
2026-06-19T05:28:32.5904176Z       }
2026-06-19T05:28:32.5904268Z     },
2026-06-19T05:28:32.5904363Z     {
2026-06-19T05:28:32.5904481Z       "id": "REQ-TERM-7",
2026-06-19T05:28:32.5905669Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-19T05:28:32.5905792Z       "requiredStages": [
2026-06-19T05:28:32.5905898Z         "impl",
2026-06-19T05:28:32.5906002Z         "unit",
2026-06-19T05:28:32.5906101Z         "int"
2026-06-19T05:28:32.5906203Z       ],
2026-06-19T05:28:32.5906317Z       "stages": {
2026-06-19T05:28:32.5906431Z         "doc": {
2026-06-19T05:28:32.5906541Z           "complete": false,
2026-06-19T05:28:32.5906655Z           "evidence": []
2026-06-19T05:28:32.5906760Z         },
2026-06-19T05:28:32.5906866Z         "impl": {
2026-06-19T05:28:32.5906980Z           "complete": true,
2026-06-19T05:28:32.5907099Z           "evidence": [
2026-06-19T05:28:32.5907204Z             {
2026-06-19T05:28:32.5907351Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5907452Z               "line": 133
2026-06-19T05:28:32.5907556Z             },
2026-06-19T05:28:32.5907660Z             {
2026-06-19T05:28:32.5907798Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5907906Z               "line": 326
2026-06-19T05:28:32.5908010Z             },
2026-06-19T05:28:32.5908106Z             {
2026-06-19T05:28:32.5908330Z               "path": "crates/spt-live/src/inject.rs",
2026-06-19T05:28:32.5908435Z               "line": 15
2026-06-19T05:28:32.5908536Z             },
2026-06-19T05:28:32.5908640Z             {
2026-06-19T05:28:32.5908784Z               "path": "crates/spt-live/src/inject.rs",
2026-06-19T05:28:32.5908883Z               "line": 32
2026-06-19T05:28:32.5909065Z             },
2026-06-19T05:28:32.5909259Z             {
2026-06-19T05:28:32.5909409Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:28:32.5909527Z               "line": 49
2026-06-19T05:28:32.5909627Z             },
2026-06-19T05:28:32.5909728Z             {
2026-06-19T05:28:32.5909880Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5909995Z               "line": 286
2026-06-19T05:28:32.5910095Z             },
2026-06-19T05:28:32.5910194Z             {
2026-06-19T05:28:32.5910353Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5910456Z               "line": 320
2026-06-19T05:28:32.5910569Z             }
2026-06-19T05:28:32.5910675Z           ]
2026-06-19T05:28:32.5910778Z         },
2026-06-19T05:28:32.5910887Z         "int": {
2026-06-19T05:28:32.5911002Z           "complete": true,
2026-06-19T05:28:32.5911111Z           "evidence": [
2026-06-19T05:28:32.5911206Z             {
2026-06-19T05:28:32.5911388Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-19T05:28:32.5911497Z               "line": 19
2026-06-19T05:28:32.5911598Z             }
2026-06-19T05:28:32.5911703Z           ]
2026-06-19T05:28:32.5911797Z         },
2026-06-19T05:28:32.5911932Z         "unit": {
2026-06-19T05:28:32.5912046Z           "complete": true,
2026-06-19T05:28:32.5912156Z           "evidence": [
2026-06-19T05:28:32.5912262Z             {
2026-06-19T05:28:32.5912408Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5912528Z               "line": 455
2026-06-19T05:28:32.5912628Z             },
2026-06-19T05:28:32.5912732Z             {
2026-06-19T05:28:32.5912872Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-19T05:28:32.5912972Z               "line": 566
2026-06-19T05:28:32.5913075Z             },
2026-06-19T05:28:32.5913170Z             {
2026-06-19T05:28:32.5913307Z               "path": "crates/spt-live/src/inject.rs",
2026-06-19T05:28:32.5913416Z               "line": 58
2026-06-19T05:28:32.5913525Z             },
2026-06-19T05:28:32.5913631Z             {
2026-06-19T05:28:32.5913768Z               "path": "crates/spt-live/src/inject.rs",
2026-06-19T05:28:32.5913874Z               "line": 77
2026-06-19T05:28:32.5913979Z             },
2026-06-19T05:28:32.5914083Z             {
2026-06-19T05:28:32.5914222Z               "path": "crates/spt-live/src/inject.rs",
2026-06-19T05:28:32.5914322Z               "line": 87
2026-06-19T05:28:32.5914436Z             },
2026-06-19T05:28:32.5914537Z             {
2026-06-19T05:28:32.5914684Z               "path": "crates/spt-store/src/history.rs",
2026-06-19T05:28:32.5914789Z               "line": 94
2026-06-19T05:28:32.5914894Z             },
2026-06-19T05:28:32.5914994Z             {
2026-06-19T05:28:32.5915148Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5915256Z               "line": 691
2026-06-19T05:28:32.5915356Z             },
2026-06-19T05:28:32.5915463Z             {
2026-06-19T05:28:32.5915609Z               "path": "crates/spt-term/src/projection.rs",
2026-06-19T05:28:32.5915729Z               "line": 716
2026-06-19T05:28:32.5915830Z             }
2026-06-19T05:28:32.5915933Z           ]
2026-06-19T05:28:32.5916032Z         }
2026-06-19T05:28:32.5916128Z       }
2026-06-19T05:28:32.5916233Z     },
2026-06-19T05:28:32.5916318Z     {
2026-06-19T05:28:32.5916433Z       "id": "REQ-UPD-1",
2026-06-19T05:28:32.5916581Z       "title": "Peer-propagated update over P2P",
2026-06-19T05:28:32.5916710Z       "requiredStages": [
2026-06-19T05:28:32.5916820Z         "impl",
2026-06-19T05:28:32.5916924Z         "unit",
2026-06-19T05:28:32.5917135Z         "int"
2026-06-19T05:28:32.5917230Z       ],
2026-06-19T05:28:32.5917339Z       "stages": {
2026-06-19T05:28:32.5917445Z         "doc": {
2026-06-19T05:28:32.5917559Z           "complete": false,
2026-06-19T05:28:32.5917664Z           "evidence": []
2026-06-19T05:28:32.5917764Z         },
2026-06-19T05:28:32.5917868Z         "impl": {
2026-06-19T05:28:32.5917973Z           "complete": true,
2026-06-19T05:28:32.5918163Z           "evidence": [
2026-06-19T05:28:32.5918267Z             {
2026-06-19T05:28:32.5918420Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5918528Z               "line": 28
2026-06-19T05:28:32.5918628Z             },
2026-06-19T05:28:32.5918728Z             {
2026-06-19T05:28:32.5918871Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5919096Z               "line": 103
2026-06-19T05:28:32.5919200Z             },
2026-06-19T05:28:32.5919301Z             {
2026-06-19T05:28:32.5919453Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5919572Z               "line": 342
2026-06-19T05:28:32.5919678Z             },
2026-06-19T05:28:32.5919782Z             {
2026-06-19T05:28:32.5919978Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5920078Z               "line": 22
2026-06-19T05:28:32.5920177Z             },
2026-06-19T05:28:32.5920288Z             {
2026-06-19T05:28:32.5920421Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5920536Z               "line": 207
2026-06-19T05:28:32.5920636Z             },
2026-06-19T05:28:32.5920740Z             {
2026-06-19T05:28:32.5920884Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5920993Z               "line": 283
2026-06-19T05:28:32.5921092Z             },
2026-06-19T05:28:32.5921197Z             {
2026-06-19T05:28:32.5921347Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5921452Z               "line": 340
2026-06-19T05:28:32.5921552Z             },
2026-06-19T05:28:32.5921653Z             {
2026-06-19T05:28:32.5921795Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:28:32.5921906Z               "line": 37
2026-06-19T05:28:32.5922001Z             }
2026-06-19T05:28:32.5922105Z           ]
2026-06-19T05:28:32.5922207Z         },
2026-06-19T05:28:32.5922311Z         "int": {
2026-06-19T05:28:32.5922434Z           "complete": true,
2026-06-19T05:28:32.5922545Z           "evidence": [
2026-06-19T05:28:32.5922654Z             {
2026-06-19T05:28:32.5922807Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-19T05:28:32.5922916Z               "line": 207
2026-06-19T05:28:32.5923011Z             },
2026-06-19T05:28:32.5923112Z             {
2026-06-19T05:28:32.5923249Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-19T05:28:32.5923364Z               "line": 1081
2026-06-19T05:28:32.5923466Z             }
2026-06-19T05:28:32.5923564Z           ]
2026-06-19T05:28:32.5923668Z         },
2026-06-19T05:28:32.5923773Z         "unit": {
2026-06-19T05:28:32.5923895Z           "complete": true,
2026-06-19T05:28:32.5924004Z           "evidence": [
2026-06-19T05:28:32.5924110Z             {
2026-06-19T05:28:32.5924257Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5924367Z               "line": 490
2026-06-19T05:28:32.5924477Z             },
2026-06-19T05:28:32.5924577Z             {
2026-06-19T05:28:32.5924710Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5924820Z               "line": 616
2026-06-19T05:28:32.5924924Z             },
2026-06-19T05:28:32.5925025Z             {
2026-06-19T05:28:32.5925178Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:28:32.5925296Z               "line": 277
2026-06-19T05:28:32.5925398Z             },
2026-06-19T05:28:32.5925497Z             {
2026-06-19T05:28:32.5925645Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:28:32.5925755Z               "line": 124
2026-06-19T05:28:32.5925975Z             },
2026-06-19T05:28:32.5926070Z             {
2026-06-19T05:28:32.5926217Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:28:32.5926328Z               "line": 200
2026-06-19T05:28:32.5926441Z             }
2026-06-19T05:28:32.5926545Z           ]
2026-06-19T05:28:32.5926640Z         }
2026-06-19T05:28:32.5926831Z       }
2026-06-19T05:28:32.5926931Z     },
2026-06-19T05:28:32.5927027Z     {
2026-06-19T05:28:32.5927132Z       "id": "REQ-UPD-2",
2026-06-19T05:28:32.5927304Z       "title": "All binaries signature-verified before handoff",
2026-06-19T05:28:32.5927423Z       "requiredStages": [
2026-06-19T05:28:32.5927526Z         "impl",
2026-06-19T05:28:32.5927637Z         "unit"
2026-06-19T05:28:32.5927737Z       ],
2026-06-19T05:28:32.5927841Z       "stages": {
2026-06-19T05:28:32.5927934Z         "doc": {
2026-06-19T05:28:32.5928047Z           "complete": false,
2026-06-19T05:28:32.5928152Z           "evidence": []
2026-06-19T05:28:32.5928249Z         },
2026-06-19T05:28:32.5928357Z         "impl": {
2026-06-19T05:28:32.5928466Z           "complete": true,
2026-06-19T05:28:32.5928573Z           "evidence": [
2026-06-19T05:28:32.5928676Z             {
2026-06-19T05:28:32.5928832Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5929031Z               "line": 343
2026-06-19T05:28:32.5929130Z             },
2026-06-19T05:28:32.5929236Z             {
2026-06-19T05:28:32.5929388Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5929498Z               "line": 476
2026-06-19T05:28:32.5929599Z             },
2026-06-19T05:28:32.5929703Z             {
2026-06-19T05:28:32.5929847Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5929956Z               "line": 29
2026-06-19T05:28:32.5930055Z             },
2026-06-19T05:28:32.5930157Z             {
2026-06-19T05:28:32.5930299Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5930413Z               "line": 271
2026-06-19T05:28:32.5930519Z             },
2026-06-19T05:28:32.5930628Z             {
2026-06-19T05:28:32.5930771Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5930872Z               "line": 288
2026-06-19T05:28:32.5930971Z             },
2026-06-19T05:28:32.5931081Z             {
2026-06-19T05:28:32.5931206Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5933387Z               "line": 408
2026-06-19T05:28:32.5933523Z             },
2026-06-19T05:28:32.5933624Z             {
2026-06-19T05:28:32.5933791Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5933891Z               "line": 558
2026-06-19T05:28:32.5933992Z             },
2026-06-19T05:28:32.5934096Z             {
2026-06-19T05:28:32.5934252Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.5934357Z               "line": 155
2026-06-19T05:28:32.5934455Z             }
2026-06-19T05:28:32.5934573Z           ]
2026-06-19T05:28:32.5934665Z         },
2026-06-19T05:28:32.5934770Z         "int": {
2026-06-19T05:28:32.5934893Z           "complete": false,
2026-06-19T05:28:32.5935004Z           "evidence": []
2026-06-19T05:28:32.5935104Z         },
2026-06-19T05:28:32.5935208Z         "unit": {
2026-06-19T05:28:32.5935319Z           "complete": true,
2026-06-19T05:28:32.5935433Z           "evidence": [
2026-06-19T05:28:32.5935532Z             {
2026-06-19T05:28:32.5935671Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5935781Z               "line": 750
2026-06-19T05:28:32.5935885Z             },
2026-06-19T05:28:32.5935982Z             {
2026-06-19T05:28:32.5936124Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5936225Z               "line": 811
2026-06-19T05:28:32.5936329Z             },
2026-06-19T05:28:32.5936429Z             {
2026-06-19T05:28:32.5936578Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5936820Z               "line": 825
2026-06-19T05:28:32.5936922Z             },
2026-06-19T05:28:32.5937029Z             {
2026-06-19T05:28:32.5937177Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5937292Z               "line": 841
2026-06-19T05:28:32.5937391Z             },
2026-06-19T05:28:32.5937496Z             {
2026-06-19T05:28:32.5937640Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5937950Z               "line": 932
2026-06-19T05:28:32.5938054Z             },
2026-06-19T05:28:32.5938159Z             {
2026-06-19T05:28:32.5938311Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.5938425Z               "line": 414
2026-06-19T05:28:32.5938527Z             },
2026-06-19T05:28:32.5938631Z             {
2026-06-19T05:28:32.5938775Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.5938879Z               "line": 427
2026-06-19T05:28:32.5939065Z             },
2026-06-19T05:28:32.5939161Z             {
2026-06-19T05:28:32.5939331Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:28:32.5939431Z               "line": 410
2026-06-19T05:28:32.5939535Z             }
2026-06-19T05:28:32.5939634Z           ]
2026-06-19T05:28:32.5939738Z         }
2026-06-19T05:28:32.5939835Z       }
2026-06-19T05:28:32.5939939Z     },
2026-06-19T05:28:32.5940044Z     {
2026-06-19T05:28:32.5940154Z       "id": "REQ-UPD-3",
2026-06-19T05:28:32.5940363Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-19T05:28:32.5940469Z       "requiredStages": [
2026-06-19T05:28:32.5940573Z         "impl",
2026-06-19T05:28:32.5940678Z         "unit",
2026-06-19T05:28:32.5940784Z         "int"
2026-06-19T05:28:32.5940883Z       ],
2026-06-19T05:28:32.5940988Z       "stages": {
2026-06-19T05:28:32.5941093Z         "doc": {
2026-06-19T05:28:32.5941208Z           "complete": false,
2026-06-19T05:28:32.5941317Z           "evidence": []
2026-06-19T05:28:32.5941418Z         },
2026-06-19T05:28:32.5941521Z         "impl": {
2026-06-19T05:28:32.5941627Z           "complete": true,
2026-06-19T05:28:32.5941728Z           "evidence": [
2026-06-19T05:28:32.5941822Z             {
2026-06-19T05:28:32.5941971Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5942076Z               "line": 40
2026-06-19T05:28:32.5942174Z             },
2026-06-19T05:28:32.5942278Z             {
2026-06-19T05:28:32.5942426Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5942534Z               "line": 87
2026-06-19T05:28:32.5942635Z             },
2026-06-19T05:28:32.5942740Z             {
2026-06-19T05:28:32.5942882Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-19T05:28:32.5942983Z               "line": 994
2026-06-19T05:28:32.5943093Z             },
2026-06-19T05:28:32.5943187Z             {
2026-06-19T05:28:32.5943327Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-19T05:28:32.5943432Z               "line": 1160
2026-06-19T05:28:32.5943535Z             },
2026-06-19T05:28:32.5943636Z             {
2026-06-19T05:28:32.5943779Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.5943883Z               "line": 26
2026-06-19T05:28:32.5943989Z             },
2026-06-19T05:28:32.5944093Z             {
2026-06-19T05:28:32.5944238Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.5944347Z               "line": 114
2026-06-19T05:28:32.5944451Z             },
2026-06-19T05:28:32.5944548Z             {
2026-06-19T05:28:32.5944680Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.5944784Z               "line": 246
2026-06-19T05:28:32.5944884Z             },
2026-06-19T05:28:32.5944988Z             {
2026-06-19T05:28:32.5945110Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5945215Z               "line": 2318
2026-06-19T05:28:32.5945322Z             }
2026-06-19T05:28:32.5945425Z           ]
2026-06-19T05:28:32.5945521Z         },
2026-06-19T05:28:32.5945725Z         "int": {
2026-06-19T05:28:32.5945850Z           "complete": true,
2026-06-19T05:28:32.5945955Z           "evidence": [
2026-06-19T05:28:32.5946059Z             {
2026-06-19T05:28:32.5946213Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-19T05:28:32.5946327Z               "line": 58
2026-06-19T05:28:32.5946436Z             }
2026-06-19T05:28:32.5946622Z           ]
2026-06-19T05:28:32.5946727Z         },
2026-06-19T05:28:32.5946823Z         "unit": {
2026-06-19T05:28:32.5946936Z           "complete": true,
2026-06-19T05:28:32.5947047Z           "evidence": [
2026-06-19T05:28:32.5947143Z             {
2026-06-19T05:28:32.5947304Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5947415Z               "line": 532
2026-06-19T05:28:32.5947515Z             },
2026-06-19T05:28:32.5947618Z             {
2026-06-19T05:28:32.5947760Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5947862Z               "line": 584
2026-06-19T05:28:32.5947970Z             },
2026-06-19T05:28:32.5948070Z             {
2026-06-19T05:28:32.5948209Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5948314Z               "line": 652
2026-06-19T05:28:32.5948415Z             },
2026-06-19T05:28:32.5948519Z             {
2026-06-19T05:28:32.5948666Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-19T05:28:32.5948777Z               "line": 1102
2026-06-19T05:28:32.5948881Z             },
2026-06-19T05:28:32.5949063Z             {
2026-06-19T05:28:32.5949210Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.5949315Z               "line": 271
2026-06-19T05:28:32.5949416Z             },
2026-06-19T05:28:32.5949515Z             {
2026-06-19T05:28:32.5949639Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.5949745Z               "line": 295
2026-06-19T05:28:32.5949849Z             },
2026-06-19T05:28:32.5949948Z             {
2026-06-19T05:28:32.5950095Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.5950208Z               "line": 316
2026-06-19T05:28:32.5950303Z             },
2026-06-19T05:28:32.5950405Z             {
2026-06-19T05:28:32.5950546Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.5950657Z               "line": 332
2026-06-19T05:28:32.5950748Z             }
2026-06-19T05:28:32.5950847Z           ]
2026-06-19T05:28:32.5950947Z         }
2026-06-19T05:28:32.5951053Z       }
2026-06-19T05:28:32.5951142Z     },
2026-06-19T05:28:32.5951243Z     {
2026-06-19T05:28:32.5951353Z       "id": "REQ-UPD-4",
2026-06-19T05:28:32.5951567Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-19T05:28:32.5951682Z       "requiredStages": [
2026-06-19T05:28:32.5951786Z         "impl",
2026-06-19T05:28:32.5951887Z         "unit"
2026-06-19T05:28:32.5951983Z       ],
2026-06-19T05:28:32.5952082Z       "stages": {
2026-06-19T05:28:32.5952177Z         "doc": {
2026-06-19T05:28:32.5952297Z           "complete": false,
2026-06-19T05:28:32.5952406Z           "evidence": []
2026-06-19T05:28:32.5952507Z         },
2026-06-19T05:28:32.5952612Z         "impl": {
2026-06-19T05:28:32.5952725Z           "complete": true,
2026-06-19T05:28:32.5952829Z           "evidence": [
2026-06-19T05:28:32.5952929Z             {
2026-06-19T05:28:32.5953080Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5953190Z               "line": 41
2026-06-19T05:28:32.5953295Z             },
2026-06-19T05:28:32.5953404Z             {
2026-06-19T05:28:32.5953538Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5953643Z               "line": 88
2026-06-19T05:28:32.5953742Z             },
2026-06-19T05:28:32.5953844Z             {
2026-06-19T05:28:32.5953987Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:28:32.5954095Z               "line": 23
2026-06-19T05:28:32.5954206Z             },
2026-06-19T05:28:32.5954410Z             {
2026-06-19T05:28:32.5954554Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:28:32.5954663Z               "line": 56
2026-06-19T05:28:32.5954763Z             },
2026-06-19T05:28:32.5954860Z             {
2026-06-19T05:28:32.5955007Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:28:32.5955122Z               "line": 77
2026-06-19T05:28:32.5955315Z             },
2026-06-19T05:28:32.5955420Z             {
2026-06-19T05:28:32.5955567Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-19T05:28:32.5955675Z               "line": 236
2026-06-19T05:28:32.5955775Z             },
2026-06-19T05:28:32.5955877Z             {
2026-06-19T05:28:32.5956023Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-19T05:28:32.5956125Z               "line": 108
2026-06-19T05:28:32.5956229Z             },
2026-06-19T05:28:32.5956328Z             {
2026-06-19T05:28:32.5956472Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.5956591Z               "line": 258
2026-06-19T05:28:32.5956696Z             },
2026-06-19T05:28:32.5956801Z             {
2026-06-19T05:28:32.5956924Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5957025Z               "line": 2317
2026-06-19T05:28:32.5957126Z             }
2026-06-19T05:28:32.5957311Z           ]
2026-06-19T05:28:32.5957417Z         },
2026-06-19T05:28:32.5957525Z         "int": {
2026-06-19T05:28:32.5957650Z           "complete": false,
2026-06-19T05:28:32.5957746Z           "evidence": []
2026-06-19T05:28:32.5957849Z         },
2026-06-19T05:28:32.5957945Z         "unit": {
2026-06-19T05:28:32.5958056Z           "complete": true,
2026-06-19T05:28:32.5958163Z           "evidence": [
2026-06-19T05:28:32.5958263Z             {
2026-06-19T05:28:32.5958412Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5958521Z               "line": 580
2026-06-19T05:28:32.5958626Z             },
2026-06-19T05:28:32.5958727Z             {
2026-06-19T05:28:32.5958874Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5959065Z               "line": 705
2026-06-19T05:28:32.5959174Z             },
2026-06-19T05:28:32.5959279Z             {
2026-06-19T05:28:32.5959417Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-19T05:28:32.5959522Z               "line": 384
2026-06-19T05:28:32.5959629Z             },
2026-06-19T05:28:32.5959722Z             {
2026-06-19T05:28:32.5959856Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:28:32.5959958Z               "line": 102
2026-06-19T05:28:32.5960061Z             },
2026-06-19T05:28:32.5960166Z             {
2026-06-19T05:28:32.5960310Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:28:32.5960414Z               "line": 123
2026-06-19T05:28:32.5960527Z             },
2026-06-19T05:28:32.5960627Z             {
2026-06-19T05:28:32.5960768Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-19T05:28:32.5960883Z               "line": 142
2026-06-19T05:28:32.5960984Z             },
2026-06-19T05:28:32.5961088Z             {
2026-06-19T05:28:32.5961226Z               "path": "crates/spt-store/src/info.rs",
2026-06-19T05:28:32.5961341Z               "line": 556
2026-06-19T05:28:32.5961445Z             },
2026-06-19T05:28:32.5961542Z             {
2026-06-19T05:28:32.5961674Z               "path": "crates/spt-store/src/perch.rs",
2026-06-19T05:28:32.5961788Z               "line": 566
2026-06-19T05:28:32.5961889Z             },
2026-06-19T05:28:32.5961989Z             {
2026-06-19T05:28:32.5962118Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.5962228Z               "line": 8061
2026-06-19T05:28:32.5962328Z             }
2026-06-19T05:28:32.5962422Z           ]
2026-06-19T05:28:32.5962510Z         }
2026-06-19T05:28:32.5962609Z       }
2026-06-19T05:28:32.5962709Z     },
2026-06-19T05:28:32.5962815Z     {
2026-06-19T05:28:32.5962923Z       "id": "REQ-UPD-5",
2026-06-19T05:28:32.5963243Z       "title": "spt-core ripple-updates registered adapters",
2026-06-19T05:28:32.5963356Z       "requiredStages": [
2026-06-19T05:28:32.5963457Z         "impl",
2026-06-19T05:28:32.5963560Z         "unit"
2026-06-19T05:28:32.5963663Z       ],
2026-06-19T05:28:32.5963759Z       "stages": {
2026-06-19T05:28:32.5963865Z         "doc": {
2026-06-19T05:28:32.5963974Z           "complete": false,
2026-06-19T05:28:32.5964184Z           "evidence": []
2026-06-19T05:28:32.5964279Z         },
2026-06-19T05:28:32.5964374Z         "impl": {
2026-06-19T05:28:32.5964480Z           "complete": true,
2026-06-19T05:28:32.5964584Z           "evidence": [
2026-06-19T05:28:32.5964680Z             {
2026-06-19T05:28:32.5964842Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5964951Z               "line": 27
2026-06-19T05:28:32.5965048Z             },
2026-06-19T05:28:32.5965147Z             {
2026-06-19T05:28:32.5965299Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5965405Z               "line": 87
2026-06-19T05:28:32.5965514Z             },
2026-06-19T05:28:32.5965609Z             {
2026-06-19T05:28:32.5965768Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5965880Z               "line": 145
2026-06-19T05:28:32.5965995Z             },
2026-06-19T05:28:32.5966094Z             {
2026-06-19T05:28:32.5966245Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5966359Z               "line": 492
2026-06-19T05:28:32.5966456Z             },
2026-06-19T05:28:32.5966550Z             {
2026-06-19T05:28:32.5966694Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5966804Z               "line": 546
2026-06-19T05:28:32.5966903Z             }
2026-06-19T05:28:32.5967009Z           ]
2026-06-19T05:28:32.5967113Z         },
2026-06-19T05:28:32.5967208Z         "int": {
2026-06-19T05:28:32.5967319Z           "complete": false,
2026-06-19T05:28:32.5967418Z           "evidence": []
2026-06-19T05:28:32.5967518Z         },
2026-06-19T05:28:32.5967624Z         "unit": {
2026-06-19T05:28:32.5967732Z           "complete": true,
2026-06-19T05:28:32.5967842Z           "evidence": [
2026-06-19T05:28:32.5967943Z             {
2026-06-19T05:28:32.5968095Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5968196Z               "line": 272
2026-06-19T05:28:32.5968306Z             },
2026-06-19T05:28:32.5968404Z             {
2026-06-19T05:28:32.5968568Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5968668Z               "line": 286
2026-06-19T05:28:32.5968771Z             },
2026-06-19T05:28:32.5968876Z             {
2026-06-19T05:28:32.5969114Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5969215Z               "line": 300
2026-06-19T05:28:32.5969315Z             },
2026-06-19T05:28:32.5969419Z             {
2026-06-19T05:28:32.5969573Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5969673Z               "line": 314
2026-06-19T05:28:32.5969782Z             },
2026-06-19T05:28:32.5969878Z             {
2026-06-19T05:28:32.5970025Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.5970130Z               "line": 348
2026-06-19T05:28:32.5970236Z             },
2026-06-19T05:28:32.5970340Z             {
2026-06-19T05:28:32.5970489Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.5970593Z               "line": 1012
2026-06-19T05:28:32.5970692Z             }
2026-06-19T05:28:32.5970789Z           ]
2026-06-19T05:28:32.5970884Z         }
2026-06-19T05:28:32.5970988Z       }
2026-06-19T05:28:32.5971087Z     },
2026-06-19T05:28:32.5971192Z     {
2026-06-19T05:28:32.5971309Z       "id": "REQ-UPD-6",
2026-06-19T05:28:32.5972144Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-19T05:28:32.5972358Z       "requiredStages": [
2026-06-19T05:28:32.5972459Z         "doc",
2026-06-19T05:28:32.5972563Z         "impl",
2026-06-19T05:28:32.5972673Z         "unit",
2026-06-19T05:28:32.5972779Z         "int"
2026-06-19T05:28:32.5972978Z       ],
2026-06-19T05:28:32.5973084Z       "stages": {
2026-06-19T05:28:32.5973188Z         "doc": {
2026-06-19T05:28:32.5973293Z           "complete": true,
2026-06-19T05:28:32.5973404Z           "evidence": [
2026-06-19T05:28:32.5973512Z             {
2026-06-19T05:28:32.5973675Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-19T05:28:32.5973780Z               "line": 3
2026-06-19T05:28:32.5973879Z             },
2026-06-19T05:28:32.5973988Z             {
2026-06-19T05:28:32.5974125Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-19T05:28:32.5974233Z               "line": 3
2026-06-19T05:28:32.5974344Z             },
2026-06-19T05:28:32.5974444Z             {
2026-06-19T05:28:32.5974615Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-19T05:28:32.5974726Z               "line": 3
2026-06-19T05:28:32.5974829Z             }
2026-06-19T05:28:32.5974935Z           ]
2026-06-19T05:28:32.5975035Z         },
2026-06-19T05:28:32.5975140Z         "impl": {
2026-06-19T05:28:32.5975254Z           "complete": true,
2026-06-19T05:28:32.5975364Z           "evidence": [
2026-06-19T05:28:32.5975464Z             {
2026-06-19T05:28:32.5975618Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5975721Z               "line": 76
2026-06-19T05:28:32.5975822Z             },
2026-06-19T05:28:32.5975928Z             {
2026-06-19T05:28:32.5976083Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5976199Z               "line": 212
2026-06-19T05:28:32.5976299Z             },
2026-06-19T05:28:32.5976408Z             {
2026-06-19T05:28:32.5976564Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5976673Z               "line": 69
2026-06-19T05:28:32.5976776Z             },
2026-06-19T05:28:32.5976872Z             {
2026-06-19T05:28:32.5977011Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5977114Z               "line": 133
2026-06-19T05:28:32.5977206Z             },
2026-06-19T05:28:32.5977316Z             {
2026-06-19T05:28:32.5977458Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5977569Z               "line": 243
2026-06-19T05:28:32.5977669Z             },
2026-06-19T05:28:32.5977772Z             {
2026-06-19T05:28:32.5977955Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5978107Z               "line": 406
2026-06-19T05:28:32.5978260Z             },
2026-06-19T05:28:32.5978402Z             {
2026-06-19T05:28:32.5978561Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5978670Z               "line": 534
2026-06-19T05:28:32.5978775Z             },
2026-06-19T05:28:32.5978880Z             {
2026-06-19T05:28:32.5979100Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5979219Z               "line": 548
2026-06-19T05:28:32.5979322Z             },
2026-06-19T05:28:32.5979431Z             {
2026-06-19T05:28:32.5979571Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5979679Z               "line": 603
2026-06-19T05:28:32.5979789Z             },
2026-06-19T05:28:32.5979885Z             {
2026-06-19T05:28:32.5980027Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5980133Z               "line": 634
2026-06-19T05:28:32.5980238Z             },
2026-06-19T05:28:32.5980342Z             {
2026-06-19T05:28:32.5980500Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-19T05:28:32.5980599Z               "line": 137
2026-06-19T05:28:32.5980700Z             },
2026-06-19T05:28:32.5980910Z             {
2026-06-19T05:28:32.5981073Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-19T05:28:32.5981185Z               "line": 184
2026-06-19T05:28:32.5981281Z             },
2026-06-19T05:28:32.5981383Z             {
2026-06-19T05:28:32.5981538Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5981637Z               "line": 78
2026-06-19T05:28:32.5981841Z             },
2026-06-19T05:28:32.5981940Z             {
2026-06-19T05:28:32.5982099Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5982203Z               "line": 114
2026-06-19T05:28:32.5982303Z             },
2026-06-19T05:28:32.5982404Z             {
2026-06-19T05:28:32.5982551Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5982657Z               "line": 185
2026-06-19T05:28:32.5982757Z             },
2026-06-19T05:28:32.5982856Z             {
2026-06-19T05:28:32.5983001Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5983105Z               "line": 260
2026-06-19T05:28:32.5983214Z             },
2026-06-19T05:28:32.5983310Z             {
2026-06-19T05:28:32.5983457Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5983562Z               "line": 292
2026-06-19T05:28:32.5983663Z             },
2026-06-19T05:28:32.5983772Z             {
2026-06-19T05:28:32.5983921Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5984029Z               "line": 323
2026-06-19T05:28:32.5984125Z             },
2026-06-19T05:28:32.5984231Z             {
2026-06-19T05:28:32.5984363Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5984476Z               "line": 346
2026-06-19T05:28:32.5984586Z             },
2026-06-19T05:28:32.5984685Z             {
2026-06-19T05:28:32.5984826Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5984932Z               "line": 388
2026-06-19T05:28:32.5985032Z             },
2026-06-19T05:28:32.5985136Z             {
2026-06-19T05:28:32.5985281Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5985389Z               "line": 398
2026-06-19T05:28:32.5985485Z             },
2026-06-19T05:28:32.5985591Z             {
2026-06-19T05:28:32.5985723Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5985838Z               "line": 410
2026-06-19T05:28:32.5985938Z             },
2026-06-19T05:28:32.5986043Z             {
2026-06-19T05:28:32.5986188Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5986296Z               "line": 420
2026-06-19T05:28:32.5986401Z             },
2026-06-19T05:28:32.5986502Z             {
2026-06-19T05:28:32.5986644Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5986754Z               "line": 439
2026-06-19T05:28:32.5986864Z             },
2026-06-19T05:28:32.5986973Z             {
2026-06-19T05:28:32.5987100Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5987210Z               "line": 449
2026-06-19T05:28:32.5987313Z             },
2026-06-19T05:28:32.5987417Z             {
2026-06-19T05:28:32.5987562Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5987661Z               "line": 94
2026-06-19T05:28:32.5987766Z             },
2026-06-19T05:28:32.5987871Z             {
2026-06-19T05:28:32.5988013Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5988119Z               "line": 120
2026-06-19T05:28:32.5988229Z             },
2026-06-19T05:28:32.5988328Z             {
2026-06-19T05:28:32.5988467Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5988582Z               "line": 135
2026-06-19T05:28:32.5988677Z             },
2026-06-19T05:28:32.5988778Z             {
2026-06-19T05:28:32.5988911Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5989097Z               "line": 162
2026-06-19T05:28:32.5989301Z             },
2026-06-19T05:28:32.5989402Z             {
2026-06-19T05:28:32.5989539Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5989641Z               "line": 174
2026-06-19T05:28:32.5989751Z             },
2026-06-19T05:28:32.5989854Z             {
2026-06-19T05:28:32.5989996Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5990210Z               "line": 185
2026-06-19T05:28:32.5990306Z             },
2026-06-19T05:28:32.5990403Z             {
2026-06-19T05:28:32.5990544Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5990650Z               "line": 451
2026-06-19T05:28:32.5990745Z             },
2026-06-19T05:28:32.5990845Z             {
2026-06-19T05:28:32.5990989Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.5991093Z               "line": 573
2026-06-19T05:28:32.5991202Z             },
2026-06-19T05:28:32.5991299Z             {
2026-06-19T05:28:32.5991446Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.5991561Z               "line": 171
2026-06-19T05:28:32.5991666Z             },
2026-06-19T05:28:32.5991769Z             {
2026-06-19T05:28:32.5991909Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:28:32.5992014Z               "line": 65
2026-06-19T05:28:32.5992117Z             },
2026-06-19T05:28:32.5992227Z             {
2026-06-19T05:28:32.5992364Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:28:32.5992477Z               "line": 71
2026-06-19T05:28:32.5992587Z             },
2026-06-19T05:28:32.5992688Z             {
2026-06-19T05:28:32.5992830Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-19T05:28:32.5992931Z               "line": 77
2026-06-19T05:28:32.5993045Z             },
2026-06-19T05:28:32.5993145Z             {
2026-06-19T05:28:32.5993279Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5993392Z               "line": 778
2026-06-19T05:28:32.5993498Z             },
2026-06-19T05:28:32.5993599Z             {
2026-06-19T05:28:32.5993726Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5993846Z               "line": 795
2026-06-19T05:28:32.5993951Z             },
2026-06-19T05:28:32.5994055Z             {
2026-06-19T05:28:32.5994190Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5994303Z               "line": 838
2026-06-19T05:28:32.5994403Z             },
2026-06-19T05:28:32.5994500Z             {
2026-06-19T05:28:32.5994627Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5994743Z               "line": 981
2026-06-19T05:28:32.5994844Z             },
2026-06-19T05:28:32.5994937Z             {
2026-06-19T05:28:32.5995060Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.5995170Z               "line": 1131
2026-06-19T05:28:32.5995259Z             }
2026-06-19T05:28:32.5995354Z           ]
2026-06-19T05:28:32.5995459Z         },
2026-06-19T05:28:32.5995569Z         "int": {
2026-06-19T05:28:32.5995692Z           "complete": true,
2026-06-19T05:28:32.5995794Z           "evidence": [
2026-06-19T05:28:32.5995898Z             {
2026-06-19T05:28:32.5996055Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:28:32.5996160Z               "line": 569
2026-06-19T05:28:32.5996260Z             },
2026-06-19T05:28:32.5996360Z             {
2026-06-19T05:28:32.5996503Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-19T05:28:32.5996613Z               "line": 135
2026-06-19T05:28:32.5996718Z             }
2026-06-19T05:28:32.5996823Z           ]
2026-06-19T05:28:32.5996927Z         },
2026-06-19T05:28:32.5997033Z         "unit": {
2026-06-19T05:28:32.5997147Z           "complete": true,
2026-06-19T05:28:32.5997257Z           "evidence": [
2026-06-19T05:28:32.5997353Z             {
2026-06-19T05:28:32.5997504Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5997612Z               "line": 625
2026-06-19T05:28:32.5997793Z             },
2026-06-19T05:28:32.5997901Z             {
2026-06-19T05:28:32.5998050Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.5998155Z               "line": 674
2026-06-19T05:28:32.5998258Z             },
2026-06-19T05:28:32.5998351Z             {
2026-06-19T05:28:32.5998502Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-19T05:28:32.5998675Z               "line": 696
2026-06-19T05:28:32.5998775Z             },
2026-06-19T05:28:32.5998874Z             {
2026-06-19T05:28:32.5999099Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5999217Z               "line": 513
2026-06-19T05:28:32.5999314Z             },
2026-06-19T05:28:32.5999418Z             {
2026-06-19T05:28:32.5999561Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.5999671Z               "line": 638
2026-06-19T05:28:32.5999770Z             },
2026-06-19T05:28:32.5999876Z             {
2026-06-19T05:28:32.6000014Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.6000129Z               "line": 675
2026-06-19T05:28:32.6000215Z             },
2026-06-19T05:28:32.6000329Z             {
2026-06-19T05:28:32.6000480Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.6000590Z               "line": 947
2026-06-19T05:28:32.6000696Z             },
2026-06-19T05:28:32.6000799Z             {
2026-06-19T05:28:32.6000948Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.6001048Z               "line": 969
2026-06-19T05:28:32.6001147Z             },
2026-06-19T05:28:32.6001253Z             {
2026-06-19T05:28:32.6001382Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.6001500Z               "line": 986
2026-06-19T05:28:32.6001587Z             },
2026-06-19T05:28:32.6001677Z             {
2026-06-19T05:28:32.6001811Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.6001921Z               "line": 1001
2026-06-19T05:28:32.6002030Z             },
2026-06-19T05:28:32.6002135Z             {
2026-06-19T05:28:32.6002283Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.6002387Z               "line": 1027
2026-06-19T05:28:32.6002489Z             },
2026-06-19T05:28:32.6002597Z             {
2026-06-19T05:28:32.6002739Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-19T05:28:32.6002863Z               "line": 457
2026-06-19T05:28:32.6002962Z             },
2026-06-19T05:28:32.6003056Z             {
2026-06-19T05:28:32.6003209Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-19T05:28:32.6003314Z               "line": 338
2026-06-19T05:28:32.6003423Z             },
2026-06-19T05:28:32.6003524Z             {
2026-06-19T05:28:32.6003661Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6003758Z               "line": 10337
2026-06-19T05:28:32.6003867Z             },
2026-06-19T05:28:32.6003967Z             {
2026-06-19T05:28:32.6004092Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.6004210Z               "line": 1260
2026-06-19T05:28:32.6004305Z             },
2026-06-19T05:28:32.6004402Z             {
2026-06-19T05:28:32.6004534Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-19T05:28:32.6004649Z               "line": 130
2026-06-19T05:28:32.6004755Z             }
2026-06-19T05:28:32.6004858Z           ]
2026-06-19T05:28:32.6004959Z         }
2026-06-19T05:28:32.6005060Z       }
2026-06-19T05:28:32.6005169Z     },
2026-06-19T05:28:32.6005264Z     {
2026-06-19T05:28:32.6005385Z       "id": "REQ-UPD-7",
2026-06-19T05:28:32.6007569Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-19T05:28:32.6007826Z       "requiredStages": [
2026-06-19T05:28:32.6007932Z         "impl",
2026-06-19T05:28:32.6008126Z         "unit"
2026-06-19T05:28:32.6008230Z       ],
2026-06-19T05:28:32.6008339Z       "stages": {
2026-06-19T05:28:32.6008443Z         "doc": {
2026-06-19T05:28:32.6008557Z           "complete": false,
2026-06-19T05:28:32.6008668Z           "evidence": []
2026-06-19T05:28:32.6008771Z         },
2026-06-19T05:28:32.6008876Z         "impl": {
2026-06-19T05:28:32.6009067Z           "complete": true,
2026-06-19T05:28:32.6009172Z           "evidence": [
2026-06-19T05:28:32.6009272Z             {
2026-06-19T05:28:32.6009434Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6009545Z               "line": 2502
2026-06-19T05:28:32.6009649Z             }
2026-06-19T05:28:32.6009749Z           ]
2026-06-19T05:28:32.6009855Z         },
2026-06-19T05:28:32.6009954Z         "int": {
2026-06-19T05:28:32.6010073Z           "complete": false,
2026-06-19T05:28:32.6010175Z           "evidence": []
2026-06-19T05:28:32.6010278Z         },
2026-06-19T05:28:32.6010383Z         "unit": {
2026-06-19T05:28:32.6010494Z           "complete": true,
2026-06-19T05:28:32.6010607Z           "evidence": [
2026-06-19T05:28:32.6010708Z             {
2026-06-19T05:28:32.6010833Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6010950Z               "line": 10313
2026-06-19T05:28:32.6011054Z             }
2026-06-19T05:28:32.6011155Z           ]
2026-06-19T05:28:32.6011256Z         }
2026-06-19T05:28:32.6011359Z       }
2026-06-19T05:28:32.6011465Z     },
2026-06-19T05:28:32.6011556Z     {
2026-06-19T05:28:32.6011674Z       "id": "REQ-UPD-8",
2026-06-19T05:28:32.6014208Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-19T05:28:32.6016408Z       "requiredStages": [
2026-06-19T05:28:32.6016551Z         "impl",
2026-06-19T05:28:32.6016651Z         "unit"
2026-06-19T05:28:32.6016760Z       ],
2026-06-19T05:28:32.6016885Z       "stages": {
2026-06-19T05:28:32.6016994Z         "doc": {
2026-06-19T05:28:32.6017117Z           "complete": false,
2026-06-19T05:28:32.6017228Z           "evidence": []
2026-06-19T05:28:32.6017333Z         },
2026-06-19T05:28:32.6017442Z         "impl": {
2026-06-19T05:28:32.6017557Z           "complete": true,
2026-06-19T05:28:32.6017656Z           "evidence": [
2026-06-19T05:28:32.6017771Z             {
2026-06-19T05:28:32.6017934Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.6018047Z               "line": 77
2026-06-19T05:28:32.6018154Z             },
2026-06-19T05:28:32.6018253Z             {
2026-06-19T05:28:32.6018405Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.6018507Z               "line": 49
2026-06-19T05:28:32.6018605Z             },
2026-06-19T05:28:32.6018705Z             {
2026-06-19T05:28:32.6018853Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.6019045Z               "line": 152
2026-06-19T05:28:32.6019279Z             },
2026-06-19T05:28:32.6019384Z             {
2026-06-19T05:28:32.6019542Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.6019651Z               "line": 215
2026-06-19T05:28:32.6019752Z             },
2026-06-19T05:28:32.6019852Z             {
2026-06-19T05:28:32.6019999Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.6020199Z               "line": 230
2026-06-19T05:28:32.6020304Z             },
2026-06-19T05:28:32.6020415Z             {
2026-06-19T05:28:32.6020558Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.6020671Z               "line": 247
2026-06-19T05:28:32.6020773Z             },
2026-06-19T05:28:32.6020876Z             {
2026-06-19T05:28:32.6021021Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.6021130Z               "line": 269
2026-06-19T05:28:32.6021225Z             },
2026-06-19T05:28:32.6021326Z             {
2026-06-19T05:28:32.6021477Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.6021586Z               "line": 66
2026-06-19T05:28:32.6021691Z             },
2026-06-19T05:28:32.6021792Z             {
2026-06-19T05:28:32.6021933Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.6022045Z               "line": 154
2026-06-19T05:28:32.6022154Z             },
2026-06-19T05:28:32.6022258Z             {
2026-06-19T05:28:32.6022393Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6022506Z               "line": 2306
2026-06-19T05:28:32.6022607Z             },
2026-06-19T05:28:32.6022707Z             {
2026-06-19T05:28:32.6022835Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6022945Z               "line": 2369
2026-06-19T05:28:32.6023051Z             },
2026-06-19T05:28:32.6023150Z             {
2026-06-19T05:28:32.6023275Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6023380Z               "line": 2379
2026-06-19T05:28:32.6023489Z             },
2026-06-19T05:28:32.6023594Z             {
2026-06-19T05:28:32.6023722Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6023826Z               "line": 2386
2026-06-19T05:28:32.6023926Z             },
2026-06-19T05:28:32.6024030Z             {
2026-06-19T05:28:32.6024153Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6024268Z               "line": 2503
2026-06-19T05:28:32.6024373Z             },
2026-06-19T05:28:32.6024472Z             {
2026-06-19T05:28:32.6024597Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.6024711Z               "line": 480
2026-06-19T05:28:32.6024815Z             },
2026-06-19T05:28:32.6024926Z             {
2026-06-19T05:28:32.6025059Z               "path": "crates/xtask/src/main.rs",
2026-06-19T05:28:32.6025164Z               "line": 494
2026-06-19T05:28:32.6025269Z             }
2026-06-19T05:28:32.6025378Z           ]
2026-06-19T05:28:32.6025469Z         },
2026-06-19T05:28:32.6025574Z         "int": {
2026-06-19T05:28:32.6025684Z           "complete": false,
2026-06-19T05:28:32.6025788Z           "evidence": []
2026-06-19T05:28:32.6025894Z         },
2026-06-19T05:28:32.6026002Z         "unit": {
2026-06-19T05:28:32.6026118Z           "complete": true,
2026-06-19T05:28:32.6026223Z           "evidence": [
2026-06-19T05:28:32.6026327Z             {
2026-06-19T05:28:32.6026471Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-19T05:28:32.6026585Z               "line": 476
2026-06-19T05:28:32.6026693Z             },
2026-06-19T05:28:32.6026793Z             {
2026-06-19T05:28:32.6026935Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-19T05:28:32.6027043Z               "line": 580
2026-06-19T05:28:32.6027149Z             },
2026-06-19T05:28:32.6027250Z             {
2026-06-19T05:28:32.6027382Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6027493Z               "line": 10315
2026-06-19T05:28:32.6027588Z             },
2026-06-19T05:28:32.6027760Z             {
2026-06-19T05:28:32.6027883Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6027987Z               "line": 10337
2026-06-19T05:28:32.6028089Z             }
2026-06-19T05:28:32.6028193Z           ]
2026-06-19T05:28:32.6028297Z         }
2026-06-19T05:28:32.6028399Z       }
2026-06-19T05:28:32.6028499Z     },
2026-06-19T05:28:32.6028675Z     {
2026-06-19T05:28:32.6028795Z       "id": "REQ-UPD-9",
2026-06-19T05:28:32.6031494Z       "title": "`gh_release` adapter [update] avenue (optional signing): an adapter declares `[update] avenue = \"gh_release\", repo = \"user/repo\"` (+ optional `asset`, default `adapter.spt`; + optional Ed25519 `signing_key`); spt-core's ripple compares the repo's LATEST GitHub release version against the installed adapter version and, when newer, auto-updates by fetching the release `.spt` archive (the REQ-INSTALL-9 `--release` fetch primitive) → verifies the `.spt` against `signing_key` if declared, else HTTPS+GitHub first-acquisition trust → re-extracts + re-registers the adapter root. Lets a harness adapter ship updates from its own GitHub releases with NO signing tooling or plugin coupling (removes the perri file_pull/delegated avenue blockers). Acquisition-trust mirrors `--release` + the installer first-fetch; does not alter spt-core self-update (REQ-UPD-1..8).",
2026-06-19T05:28:32.6031629Z       "requiredStages": [
2026-06-19T05:28:32.6031741Z         "doc",
2026-06-19T05:28:32.6031847Z         "impl",
2026-06-19T05:28:32.6031948Z         "unit"
2026-06-19T05:28:32.6032047Z       ],
2026-06-19T05:28:32.6032142Z       "stages": {
2026-06-19T05:28:32.6032251Z         "doc": {
2026-06-19T05:28:32.6032366Z           "complete": true,
2026-06-19T05:28:32.6032470Z           "evidence": [
2026-06-19T05:28:32.6032571Z             {
2026-06-19T05:28:32.6032691Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.6032795Z               "line": 93
2026-06-19T05:28:32.6032891Z             },
2026-06-19T05:28:32.6032995Z             {
2026-06-19T05:28:32.6033128Z               "path": "docs/MANIFEST.md",
2026-06-19T05:28:32.6033239Z               "line": 240
2026-06-19T05:28:32.6033338Z             }
2026-06-19T05:28:32.6033429Z           ]
2026-06-19T05:28:32.6033530Z         },
2026-06-19T05:28:32.6033634Z         "impl": {
2026-06-19T05:28:32.6033748Z           "complete": true,
2026-06-19T05:28:32.6033859Z           "evidence": [
2026-06-19T05:28:32.6033958Z             {
2026-06-19T05:28:32.6034125Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.6034235Z               "line": 128
2026-06-19T05:28:32.6034330Z             },
2026-06-19T05:28:32.6034429Z             {
2026-06-19T05:28:32.6034581Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.6034689Z               "line": 533
2026-06-19T05:28:32.6034794Z             },
2026-06-19T05:28:32.6034890Z             {
2026-06-19T05:28:32.6035041Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.6035157Z               "line": 415
2026-06-19T05:28:32.6035252Z             },
2026-06-19T05:28:32.6035356Z             {
2026-06-19T05:28:32.6035505Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.6035609Z               "line": 461
2026-06-19T05:28:32.6035714Z             },
2026-06-19T05:28:32.6035810Z             {
2026-06-19T05:28:32.6035958Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.6036067Z               "line": 869
2026-06-19T05:28:32.6036172Z             },
2026-06-19T05:28:32.6036277Z             {
2026-06-19T05:28:32.6036422Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-19T05:28:32.6036535Z               "line": 302
2026-06-19T05:28:32.6036630Z             },
2026-06-19T05:28:32.6036727Z             {
2026-06-19T05:28:32.6036849Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6036959Z               "line": 5532
2026-06-19T05:28:32.6037056Z             },
2026-06-19T05:28:32.6037159Z             {
2026-06-19T05:28:32.6037392Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6037495Z               "line": 5577
2026-06-19T05:28:32.6037599Z             },
2026-06-19T05:28:32.6037695Z             {
2026-06-19T05:28:32.6037824Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6037937Z               "line": 5714
2026-06-19T05:28:32.6038134Z             },
2026-06-19T05:28:32.6038228Z             {
2026-06-19T05:28:32.6038358Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6038473Z               "line": 5735
2026-06-19T05:28:32.6038576Z             },
2026-06-19T05:28:32.6038677Z             {
2026-06-19T05:28:32.6038796Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6038906Z               "line": 5758
2026-06-19T05:28:32.6039087Z             },
2026-06-19T05:28:32.6039182Z             {
2026-06-19T05:28:32.6039307Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6039416Z               "line": 5785
2026-06-19T05:28:32.6039511Z             }
2026-06-19T05:28:32.6039613Z           ]
2026-06-19T05:28:32.6039712Z         },
2026-06-19T05:28:32.6039815Z         "int": {
2026-06-19T05:28:32.6039930Z           "complete": false,
2026-06-19T05:28:32.6040039Z           "evidence": []
2026-06-19T05:28:32.6040132Z         },
2026-06-19T05:28:32.6040238Z         "unit": {
2026-06-19T05:28:32.6040353Z           "complete": true,
2026-06-19T05:28:32.6040456Z           "evidence": [
2026-06-19T05:28:32.6040562Z             {
2026-06-19T05:28:32.6040725Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-19T05:28:32.6040838Z               "line": 259
2026-06-19T05:28:32.6040935Z             },
2026-06-19T05:28:32.6041034Z             {
2026-06-19T05:28:32.6041177Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-19T05:28:32.6041278Z               "line": 657
2026-06-19T05:28:32.6041378Z             },
2026-06-19T05:28:32.6041468Z             {
2026-06-19T05:28:32.6041616Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-19T05:28:32.6041725Z               "line": 1048
2026-06-19T05:28:32.6041831Z             },
2026-06-19T05:28:32.6041940Z             {
2026-06-19T05:28:32.6042068Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6042179Z               "line": 7422
2026-06-19T05:28:32.6042283Z             }
2026-06-19T05:28:32.6042388Z           ]
2026-06-19T05:28:32.6042489Z         }
2026-06-19T05:28:32.6042593Z       }
2026-06-19T05:28:32.6042692Z     },
2026-06-19T05:28:32.6042783Z     {
2026-06-19T05:28:32.6042898Z       "id": "REQ-WHOAMI-1",
2026-06-19T05:28:32.6044566Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-19T05:28:32.6044690Z       "requiredStages": [
2026-06-19T05:28:32.6044800Z         "doc",
2026-06-19T05:28:32.6044904Z         "impl",
2026-06-19T05:28:32.6045008Z         "unit"
2026-06-19T05:28:32.6045108Z       ],
2026-06-19T05:28:32.6045221Z       "stages": {
2026-06-19T05:28:32.6045320Z         "doc": {
2026-06-19T05:28:32.6045426Z           "complete": true,
2026-06-19T05:28:32.6045535Z           "evidence": [
2026-06-19T05:28:32.6045635Z             {
2026-06-19T05:28:32.6045755Z               "path": "CONTEXT.md",
2026-06-19T05:28:32.6045864Z               "line": 704
2026-06-19T05:28:32.6045959Z             }
2026-06-19T05:28:32.6046065Z           ]
2026-06-19T05:28:32.6046160Z         },
2026-06-19T05:28:32.6046269Z         "impl": {
2026-06-19T05:28:32.6046380Z           "complete": true,
2026-06-19T05:28:32.6046480Z           "evidence": [
2026-06-19T05:28:32.6046700Z             {
2026-06-19T05:28:32.6046837Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6046952Z               "line": 3066
2026-06-19T05:28:32.6047052Z             },
2026-06-19T05:28:32.6047157Z             {
2026-06-19T05:28:32.6047282Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6047395Z               "line": 3094
2026-06-19T05:28:32.6047601Z             }
2026-06-19T05:28:32.6047696Z           ]
2026-06-19T05:28:32.6047800Z         },
2026-06-19T05:28:32.6047904Z         "int": {
2026-06-19T05:28:32.6048027Z           "complete": false,
2026-06-19T05:28:32.6048126Z           "evidence": []
2026-06-19T05:28:32.6048231Z         },
2026-06-19T05:28:32.6048332Z         "unit": {
2026-06-19T05:28:32.6048441Z           "complete": true,
2026-06-19T05:28:32.6048545Z           "evidence": [
2026-06-19T05:28:32.6048647Z             {
2026-06-19T05:28:32.6048774Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6048870Z               "line": 7704
2026-06-19T05:28:32.6049042Z             },
2026-06-19T05:28:32.6049136Z             {
2026-06-19T05:28:32.6049261Z               "path": "crates/spt/src/cli.rs",
2026-06-19T05:28:32.6049371Z               "line": 7757
2026-06-19T05:28:32.6049509Z             }
2026-06-19T05:28:32.6049610Z           ]
2026-06-19T05:28:32.6049709Z         }
2026-06-19T05:28:32.6049819Z       }
2026-06-19T05:28:32.6049915Z     }
2026-06-19T05:28:32.6050023Z   ],
2026-06-19T05:28:32.6050134Z   "findings": []
2026-06-19T05:28:32.6050234Z }
